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 Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)



import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);

		int d = sc.nextInt();

		int count[] = new int[100];
		for(int i = 2; i <= d; i++){
			int n = i;
			int div = 2;

			while(n > 1){
				if(n%div == 0){
					n /= div;
					count[div]++;
				}
				else{
					div++;
				}
			}
		}

//		for(int i = 1; i <= 20; i++){
//			System.out.print(count[i] + " " );
//		}
//		System.out.println();
		int moreThan4 = 0;
		int moreThan2 = 0;
		int moreThan14 = 0;
		int moreThan24 = 0;

		for(int i = 0; i < count.length; i++){
			if(count[i] >= 4){
				moreThan4++;
			}
			if(count[i] >= 2){
				moreThan2++;
			}
			if(count[i] >= 14){
				moreThan14++;
			}
			if(count[i] >= 24){
				moreThan24++;
			}
		}

//		System.out.println(moreThan4 + " " + moreThan2);
		int result;
		if(moreThan4 >= 2 && moreThan2 >= 3){
			result = moreThan4*(moreThan4 - 1)/2 * (moreThan2 - 2);// - moreThan4*(moreThan4 - 1)*(moreThan4 - 2)/6;

			if(moreThan14 > 0){
				result += moreThan14*(moreThan4 - 1);// - moreThan14*(moreThan14 - 1)/2;
			}
			if(moreThan24 > 0){
				result += moreThan24*(moreThan2 - 1);// - moreThan24*(moreThan24 - 1)/2;
			}

			if(count[2] >= 74){
				result++;
			}
		}
		else {
			result = 0;
		}

		System.out.println(result);

	}

}