Problem: You are given an integer N. Among the divisors of N! (= 1 \times 2 \times ... \times N), how many _Shichi-Go numbers_ (literally "Seven-Five numbers") are there?  Here, a Shichi-Go number is a positive integer that has exactly 75 divisors.

Submission attempts (in order):
n = int(input())
prime_list = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
divider_list = []
for i in range(1,n+1):
    while i > 1:
        for j in prime_list:
            if i % j == 0:
                divider_list.append(j)
                i = i // j
                break
            else:
                continue
divider_dic = {}
for k in divider_list:
    if k in divider_dic:
        divider_dic[k] = divider_dic[k] + 1
    else:
        divider_dic[k] = 1

key_list = []
for k in divider_dic:
    key_list.append(divider_dic[k])
a, b, c, d, e = 0, 0, 0, 0, 0
for k in key_list:
    if k == 1:
        continue
    elif k < 4:
        a += 1
    elif k < 14:
        b += 1
    elif k < 24:
        c += 1
    elif k < 74:
        d += 1
    else:
        e += 1

def nCr(n, r):
    if n < r:
        return 0
    r = min(r, n - r)
    if r == 0: return 1;
    if r == 1: return n;
    numerator = [n - r + i + 1 for i in range(r)]
    denominator  = [i + 1 for i in range(r)]
    for p in range(2, r + 1):
        pivot = denominator[p - 1]
        if pivot > 1:
            offset = (n - r) % p
            for k in range(p - 1, r, p):
                numerator[k - offset] /= pivot
                denominator[k] /= pivot
    result = 1
    for k in range(r):
        if numerator[k] > 1: 
            result *= numerator[k]
    return result
print(key_list)
print(a, b, c, d, e)
ans = int(a*nCr(b+c+d+e,2)+nCr(b+c+d+e,2)*(b+c+d+e-2)+b*(c+d+e)+(c+d+e)*(c+d+e-1)+(a+b+c)*(d+e)+(d+e)*(d+e-1)+e)
print(ans)

n = int(input())
prime_list = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
divider_list = []
for i in range(1,n+1):
    while i > 1:
        for j in prime_list:
            if i % j == 0:
                divider_list.append(j)
                i = i // j
                break
            else:
                continue
divider_dic = {}
for k in divider_list:
    if k in divider_dic:
        divider_dic[k] = divider_dic[k] + 1
    else:
        divider_dic[k] = 1

key_list = []
for k in divider_dic:
    key_list.append(divider_dic[k])
a, b, c, d, e = 0, 0, 0, 0, 0
for k in key_list:
    if k == 1:
        continue
    elif k < 4:
        a += 1
    elif k < 14:
        b += 1
    elif k < 24:
        c += 1
    elif k < 74:
        d += 1
    else:
        e += 1

def nCr(n, r):
    if n < r:
        return 0
    r = min(r, n - r)
    if r == 0: return 1;
    if r == 1: return n;
    numerator = [n - r + i + 1 for i in range(r)]
    denominator  = [i + 1 for i in range(r)]
    for p in range(2, r + 1):
        pivot = denominator[p - 1]
        if pivot > 1:
            offset = (n - r) % p
            for k in range(p - 1, r, p):
                numerator[k - offset] /= pivot
                denominator[k] /= pivot
    result = 1
    for k in range(r):
        if numerator[k] > 1: 
            result *= numerator[k]
    return result

ans = int(a*nCr(b+c+d+e,2)+nCr(b+c+d+e,2)*(b+c+d+e-2)+b*(c+d+e)+(c+d+e)*(c+d+e-1)+(a+b+c)*(d+e)+(d+e)*(d+e-1)+e)
print(ans)

Verdicts: Wrong Answer

Accepted