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 Ruby (2.3.3) (judge verdict: Accepted)

# util functions

# debug
$debugFlag = ( ARGV[0] != nil )
p "==== DEBUG MODE ====" if $debugFlag

# input
inputs = []
lc = 0
while l = $stdin.gets do
  if false
    inputs << l.chomp.split(" ").map(&:to_s)
  else
    inputs << l.chomp.split(" ").map(&:to_i)
  end
  lc += 1
end

# input check
if $debugFlag
  p "--- INPUT (begin) ---"
  inputs.each do |l_i|
    p l_i
  end
  p "--- INPUT (end) ---"
  print "\n"
end

# body
$num = inputs[0][0]
$prime_table = [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]
$candidates = [[75], [3, 25], [5, 15], [3, 5, 5]]

if $debugFlag
  p $num
  p $prime_table
end

factorize = []
$prime_table.each do |p_i|
  break if p_i > $num
  tmp = p_i
  tmp_cnt = 0
  while tmp <= $num
    tmp_cnt += ($num / tmp)
    tmp *= p_i
  end
  factorize << tmp_cnt
end

p factorize if $debugFlag

def dfs( res_src_list, res_tgt_list )
  return 1 if res_tgt_list == []
  sum = 0
  c_res_tgt_list = res_tgt_list.clone
  tgt = c_res_tgt_list.shift
  res_src_list.size.times do |i|
    if res_src_list[i] >= tgt - 1
      c_res_src_list = res_src_list.clone
      c_res_src_list.delete_at(i)
      if $debugFlag
        print "res_src_val: "
        p res_src_list[i]
        print "tgt: "
        p tgt
        p c_res_tgt_list
      end
      sum += dfs( c_res_src_list, c_res_tgt_list )
    end
  end
  return sum
end

res = 0
$candidates.each do |c_i|
  if $debugFlag
    print "c_i:"
    p c_i
  end
  addVal = dfs( factorize, c_i )
  addVal /= 2 if c_i == [3, 5, 5]
  res += addVal
end

puts res