Untitled
unknown
plain_text
2 years ago
970 B
4
Indexable
#include <iostream> #include<vector> #include<stdio.h> using namespace std; bool prime[10001]; vector<int> primes; void findprime(){ //建構質數表 for (int i=0;i<10001;i++){// prime[i]=true; } prime[0]=false; prime[1]=false; for (int i=2; i<10001; i++){ if (prime[i]){ if((long long)i*i<10001){// for(int m=i*i; m<10001; m+=i) prime[m] = false; } primes.push_back(i);//儲存已知的質數 } } } int main() { int n; findprime(); while(cin>>n){ if(n==0) break; int l=0,ans=0,sum=0; for(int r=0;n>=primes[r];r++){ sum+=primes[r]; while(sum>n){ sum-=primes[l++]; } if(sum==n){ ans++; } } cout<<ans<<endl; } return 0; }
Editor is loading...