您的位置:首页 > 其它

连续素数之和(Uva 1210)

2018-03-14 14:01 239 查看
2<=n<=10000,而10000之内的素数只有1229个所以打表就行,然后用map存放各种连续和情况(这是最先想到的方法)QAQ#include<bits/stdc++.h>
using namespace std;
int prime[10005];
int a[1229];
map<int,int>s;
void g()
{
memset(prime,0,sizeof(prime));
for(int i=2;i*i<=10000;i++)
{
if(!prime[i])
{
for(int j=i*i;j<=10000;j+=i)
prime[j]=1;
}
}
int j=0;
for(int i=2;i<=10000;i++)
{
if(!prime[i])
a[j++]=i;
}
for(int i=1;i<=j;i++)
{
for(int k=0;k+i<=j;k++)
{
int t=0;
for(int m=k;m<i+k;m++)
t+=a[m];
s[t]++;
}
}
}
int main()
{
int n;
g();
while(scanf("%d",&n)==1&&n)
{
printf("%d\n",s
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: