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# (Mono 4.6.2.0) (judge verdict: Wrong Answer)

using System;
using System.Linq;
using System.Collections.Generic;

class Dmondai
{
    static void Main()
    {
        var N = Int32.Parse(Console.ReadLine());

        //素因数分解の結果を保存
        var array = new int[100];
        array[0] = 1;
        for (int i = 1; i < 100; ++i) array[i] = 0;
        for (int i = 2; i <= N; ++i)
        {
            var num = i;
            for (int k = 2; k <= i; ++k)
            {
                if (num < k) break;
                while (num % k == 0)
                {
                    array[k - 1]++;
                    num /= k;
                }
            }
        }

        var list = new List<long>();
        // 74 2.24 4.14 2.4.4
        for (int i=0;i<array.Count();++i)
        {
            if (array[i] == 0) continue;
            for (int j = 0; j < array.Count(); ++j)
            {
                if ((array[j] == 0)||(j==i)) continue;
                for (int k = 0; k < array.Count(); ++k)
                {
                    if ((array[k] == 0)||(k==i)||(k==j)) continue;

                    if ( 2 <= array[i] && 4 <= array[j] && 4 <= array[k] )
                    {
                        var n = (long)(Math.Pow(i + 1, 2) + Math.Pow(j + 1, 4) + Math.Pow(k + 1, 4));
                        if (!list.Contains(n)) list.Add(n);
                    }
                    if (k == 0)
                    {
                        if (4<=array[i] && 14 <= array[j]){
                            var n = (long)(Math.Pow(i + 1, 4) + Math.Pow(j + 1, 14));
                            if (!list.Contains(n)) list.Add(n);
                        }
                        if (2 <= array[i] && 24 <= array[j]) {
                            var n = (long)(Math.Pow(i + 1, 2) + Math.Pow(j + 1, 24));
                            if (!list.Contains(n)) list.Add(n);
                        }

                        if (j == 0)
                        {
                            if (74 <= array[i])
                            {
                                var n = (long)Math.Pow(i,74);
                                if (!list.Contains(n)) list.Add(n);
                            }
                        }
                    }

                }
            }
        }
        Console.WriteLine(list.Count());
        
    }
}