def partial_product(start, stop):
 numfactors = ((stop - start) >> 1)
 if (not numfactors):
  return 1
 elif (numfactors == 1):
  return start
 else:
  mid = ((start + numfactors) | 1)
  return (partial_product(start, mid) * partial_product(mid, stop))

def partial_product ( start , stop ) : numfactors = ( ( stop - start ) >> 1 ) if ( not numfactors ) : return 1 elif ( numfactors == 1 ) : return start else : mid = ( ( start + numfactors ) | 1 ) return ( partial_product ( start , mid ) * partial_product ( mid , stop ) )
product of integers in range .