Problem:
Score : 400 points

Problem Statement

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.

Note

When a positive integer A divides a positive integer B, A is said to a divisor of B.
For example, 6 has four divisors: 1, 2, 3 and 6.

Constraints

1 \leq N \leq 100

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the number of the Shichi-Go numbers that are divisors of N!.

Sample Input 1

9

Sample Output 1

0

There are no Shichi-Go numbers among the divisors of 9! = 1 \times 2 \times ... \times 9 = 362880.

Sample Input 2

10

Sample Output 2

1

There is one Shichi-Go number among the divisors of 10! = 3628800: 32400.

Sample Input 3

100

Sample Output 3

543

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

//#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
#define rep(i, n) for(int i=0; i<n; ++i)
using namespace std;
using ll = int64_t;
using vi = vector<int>;
using vvi = vector<vi>;


int main() {
    set<int> prime;
    prime.insert(2);
    prime.insert(3);
    prime.insert(5);
    prime.insert(7);
    prime.insert(11);
    prime.insert(13);
    prime.insert(17);
    prime.insert(19);
    prime.insert(23);
    prime.insert(29);
    prime.insert(31);
    prime.insert(37);
    prime.insert(41);
    prime.insert(43);
    prime.insert(47);

    int n;
    cin >> n;

    vi yy(5);
    for(int x:prime) {
        int i=0;
        int n_ = n;
        while(n_) {
            i += n_/x;
            n_ /= x;
        }
        if(i >= 2) {
            yy[0]++;
        }
        if(i >= 4) {
            yy[1]++;
        }
        if(i >= 14) {
            yy[2]++;
        }
        if(i >= 24) {
            yy[3]++;
        }
        if(i >= 74) {
            yy[4]++;
        }
    }

    int ans=0;
    ans += (yy[0]-2)*(yy[1]*(yy[1]-1)/2);
    ans += (yy[0]-1)*yy[3];
    ans += (yy[1]-1)*yy[2];
    ans += yy[4];

    //cout << yy[0] << yy[1] << yy[2] << yy[3] << yy[4] << endl;

    cout << ans << endl;

}