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: Time Limit Exceeded)

#include <iostream>
#include <vector>
#include <map>

using namespace std;

void primals(int x, vector<int> &ret){
  for (int i=2; i<=x; i++){
    if (ret.size() == 0) ret.push_back(i);
    else{
      bool f = true;
      for (int p : ret){
        if (x % p == 0){
          f = false;
          break;
        }
      }
      if (f) ret.push_back(i);
    }
  }
  return;
}
      

void calc_all_divisor(int x, map<int, int> &ret, vector<int> &primals){
  int c = 0;
  while (c < primals.size()){
    if (x < primals[c]) break;
    if (x % primals[c] != 0){
      c++;
    }
    else {
      ret[primals[c]]++;
    }
  }
  return;
}
    

int main(){
  int N;
  cin >> N;
  vector<int> P;
  primals(N, P);
  map<int, int> divisor;
  for (int i=2; i<=N; i++){
    calc_all_divisor(i, divisor, P);
  }
  int Na = 0, Nb = 0;
  for (auto e : divisor){
    if (e.second >= 5) Nb++;
    if (e.second >= 3) Na++;
  }
  if (Na < 3 || Nb < 2){
    cout << 0 << "\n";
  }
  else{
    cout << Nb * (Nb - 1) * (Na - 2) << "\n";
  }
  return 0;
}