import std.stdio, std.string, std.conv;
import std.typecons;
import std.algorithm, std.array, std.range, std.container;
import std.math;

void main() {
	auto data = readln.split;
	auto N = data[0].to!int;
	int[] prime_list = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,91,97];
	
	if (1<=N && N<=5) { 0.writeln; return; }
	
	auto order_list = prime_list.map!(a => order(a, N));
	ulong c2 = order_list.count!"a>=b"(2), c4 = order_list.count!"a>=b"(4),
	c14 = order_list.count!"a>=b"(14), c24 = order_list.count!"a>=b"(24), c74 = order_list.count!"a>=b"(74);
	
	writeln( c74 + c4*(c4-1)/2 * (c2-2) + c24*(c2-1) + c14*(c4-1));
}

// how many times can n! be devided by prime
int order(int prime, int n) {
	auto power = prime;
	int result;
	while (true) {
		auto a = n / power;
		if (a != 0) result += a;
		else break;
		power *= prime;
	}
	return result;
}