/* #ifndef _GLIBCXX_NO_ASSERT #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if __cplusplus >= 201103L #include #include #include #include #include #include #include #include #include #endif // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if __cplusplus >= 201103L #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif */ #include using namespace std; #define DEBUG(x) cout<<#x<<": "< #define vl vector #define vii vector< vector > #define vll vector< vector > #define vs vector #define pii pair #define pis pair #define psi pair const int inf = 1000000001; const ll INF = 1e16; #define MOD 1000000007 #define mod 1000000009 #define pi 3.14159265358979323846 #define Sp(p) cout<> n; vi sosuu; vi used(n+1, true); used[0] = used[1] = false; for(i = 2; i <= n; i++){ if(used[i]){ sosuu.push_back(i); for(j = 2; i*j <= n; j++){ used[i*j] = false; } } } int m = sosuu.size(); vi dp(n+1,-1); dp[0] = 0; for(i = 0; i < m; i++){ for(j = n; j >= 0; j--){ if(dp[j] != -1){ if(j + sosuu[i] <= n){ dp[j + sosuu[i]] = max(dp[j + sosuu[i]], dp[j] + 1); } } } } cout<