简单题 素数打表 根据数据量 用n2算法遍历 开一个save【k】素数存前k个素数和即可。
#include <iostream> #include <cstdio> #include <memory.h> #include <cmath> using namespace std; ; ]; +]; +]; void make_pri() { pri[]=; pri[]=; ;i<=maxn;i++) { pri[i]=; } ;i*i<=maxn;i++) { if(pri[i]) { for(int j=i*i;j<=maxn;j+=i) pri[j]=; } } } void init() { memset(save,,sizeof(save)); memset(s,,sizeof(s)); ; s[]=; ;i<=maxn;i++) { ) { s[j++]=i; } } ;i<=;i++) { save[i]=save[i-]+s[i]; } } int main() { //freopen("in.txt","r",stdin); memset(save,,sizeof(save)); make_pri(); init(); int n; ) { ; int last; ) { ;i>=;i--) { if(s[i]==n) { last=i; } } } else { ;i>=;i--) { ]>n) { last=i; } } } ;i--) { ;j>=;j--) { if(save[i]-save[j]==n) { cnt++; } } } cout << cnt << endl; } ; }