NC228908. Sum of Consecutive Prime Numbers
描述
输入描述
第一行包含一个正整数。接下来行,每行包括一个正整数。数据保证。
输出描述
对于每组数据,输出一行,一个整数,表示答案。
示例1
输入:
8 2 3 17 41 20 666 12 53
输出:
1 1 2 3 0 0 1 2
C++ 解法, 执行用时: 487ms, 内存消耗: 49200K, 提交时间: 2022-06-25 12:23:54
#include<iostream> using namespace std; int prime[4000000],cnt,n; bool ju[40000001]; int main() { for(int i=2;i<=40000000;i++) { if(!ju[i])prime[++cnt]=i; for(int j=1;j<=cnt&&i*prime[j]<=40000000;j++) { ju[i*prime[j]]=1; if(i%prime[j]==0)break; } } int t; cin>>t; while(t--) { cin>>n; int ans=0; int l=1,sum=0; for(int i=1;i<=cnt;i++) { if(prime[i]>n)break; sum+=prime[i]; while(sum>n)sum-=prime[l++]; if(sum==n)ans++; } cout<<ans<<endl; } return 0; }