#include #include void get_primes(std::vector& list, int p) { for (int i = 3; i <= p; ++i) { bool is_prime = true; for (int divisor : list) { if (i % divisor == 0) { is_prime = false; break; } } if (is_prime) { list.push_back(i); } } } int main() { std::ios::sync_with_stdio(false); int p; std::cin >> p; std::vector primes{2}; get_primes(primes, p); int n = primes.size(); std::vector combinations(n); combinations[n - 1] = 1; for (int i = n - 2; i >= 0; --i) { int& comb = combinations[i]; for (int next_hop = i+1; next_hop < n && primes[next_hop] - primes[i] <= 14; ++next_hop) { comb += combinations[next_hop]; } } std::cout << combinations[0] << std::endl; return 0; }