Skip to content

Instantly share code, notes, and snippets.

@wi34rd
Created March 13, 2017 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wi34rd/ea6284a89af42927f0f03a129af869d4 to your computer and use it in GitHub Desktop.
Save wi34rd/ea6284a89af42927f0f03a129af869d4 to your computer and use it in GitHub Desktop.
import operator
from functools import reduce
from multiprocessing import Pool
def product(rng):
return reduce(operator.mul, rng)
def factorial(number, processes_number):
result = 1
with Pool(processes_number) as pool:
for part in pool.map(product, (range(x, x + number // processes_number) for x in range(1, number - number // processes_number + 2, number // processes_number))):
result *= part
return result
if __name__ == '__main__':
number = int(input('Enter a number: '))
processes_number = int(input('Enter a processes number: '))
print(factorial(number, processes_number))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment