#include #include #include #include using namespace std; int main(void){ int n; cin >> n; vector pt(20001, 0); for (int i = 2; i < 20001; i++) { int j = i + i; while (j < 20001) { pt[j]++; j += i; } } vector p; for (int i = 2; i < n+1; i++) if (!pt[i]) p.push_back(i); vector dp(20001, -1); dp[0] = 0; for (int i = 0; i < p.size(); i++) { for (int j = n; j >= 0; j--) { if (dp[j] == -1) continue; if (j+p[i] > n) continue; dp[j+p[i]] = max(dp[j+p[i]], dp[j] + 1); } } cout << dp[n] << endl; }