codeflash-internal/experiments/pie_test_set/p03213.py

107 lines
1.5 KiB
Python

def problem_p03213(input_data):
from functools import reduce
from operator import mul
nCr = {}
def cmb(n, r):
if r == 0 or r == n:
return 1
if r == 1:
return n
if (n, r) in nCr:
return nCr[(n, r)]
nCr[(n, r)] = cmb(n - 1, r) + cmb(n - 1, r - 1)
return nCr[(n, r)]
a = int(eval(input_data))
b = [0 for i in range(15)]
j = 0
c = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
d = [0 for i in range(101)]
p = 0
pp = 0
g = 0
gg = 0
ggg = 0
co = 0
for i in range(1, 101):
k = i
while True:
if k % c[j] == 0 and k >= c[j]:
b[j] += 1
k //= c[j]
else:
j += 1
if j == 15:
j = 0
break
for k in range(15):
if b[k] >= 74:
g += 1
if b[k] >= 24:
gg += 1
if b[k] >= 14:
ggg += 1
if b[k] >= 4:
p += 1
if b[k] >= 2:
pp += 1
if i >= 10:
d[i] = (
cmb(p, 2) * cmb((pp - 2), 1)
+ cmb(g, 1)
+ cmb(gg, 1) * cmb((pp - 1), 1)
+ cmb(ggg, 1) * cmb((p - 1), 1)
)
p = 0
pp = 0
g = 0
gg = 0
ggg = 0
return d[a]