#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; vector p; void makeprimelist(int n) { bool *isp=new bool[++n]; for(int i=0;i>n; makeprimelist(20010); int dp[20100]={}; memset(dp,-1,sizeof(dp)); dp[0]=0; for(int j=0;j=p[j];i--) { if(dp[i-p[j]]!=-1)dp[i]=max(dp[i],dp[i-p[j]]+1); } } cout<<(dp[n]?dp[n]:-1)<