fork(1) download
  1. from functools import reduce
  2.  
  3. def primes_sieve(limit):
  4. limitn = limit+1
  5. not_prime = set()
  6. primes = []
  7.  
  8. for i in range(2, limitn):
  9. if i in not_prime:
  10. continue
  11.  
  12. for f in range(i*2, limitn, i):
  13. not_prime.add(f)
  14.  
  15. primes.append(i)
  16.  
  17. return primes
  18.  
  19.  
  20.  
  21. def FactorialFactorisation(n):
  22. primeNumbers = primes_sieve(n)
  23. len_list = len(primes_sieve(n))
  24. factorization = [0]*(len_list+1)
  25. for i in range(len_list):
  26. power = 0
  27. k = primeNumbers[i]
  28. while n // k > 0:
  29. power += n // k
  30. k = k * primeNumbers[i]
  31. factorization[i] = power
  32. return factorization
  33.  
  34. def ListDifference(A, B):
  35. return [i-j for i,j in zip(A,B)]
  36.  
  37. def BinomialFactorization(n,k):
  38. N = FactorialFactorisation(n)
  39. K = FactorialFactorisation(k)
  40. K += [0]*(len(N)-len(K))
  41. N_K = FactorialFactorisation(n-k)
  42. N_K += [0]*(len(N)-len(N_K))
  43. return ListDifference(ListDifference(N, K), N_K)
  44.  
  45.  
  46.  
  47. def SumOfDivisorsOfBinomial(n,k):
  48. A = BinomialFactorization(n,k)
  49. B = [x+1 for x in A]
  50. return (reduce(lambda x, y: x * y, B))%1000000007
  51.  
  52.  
  53. k, n = map(int, input().split())
  54. print(SumOfDivisorsOfBinomial(n,k))
Runtime error #stdin #stdout #stderr 0.02s 7064KB
stdin
5 10
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "prog.py", line 53, in <module>
  File "<string>", line 1
    5 10
       ^
SyntaxError: unexpected EOF while parsing