犹豫了一下该不该写这道题的报告,还是写了,AC代码:
#include<iostream>
using namespace std;
int main()
{int su[10000],n,i,j=2,s,sum,k,flag=0;
su[0]=2;
su[1]=3;
for(n=2;n<=10000;n++)
for(i=2;i<=n/2;i++)
{if(n%i==0)
break;
if(i==n/2)
su[j++]=n;}
while(cin>>s,s)
{ flag=0;
for(j=0;su[j]<=s;j++)
{sum=0;
for(k=j;sum<s;k++)
{sum+=su[k];
if(sum==s)
flag++;}}
cout<<flag<<endl;}
return 0;}
刚开始在VC上用while(cin>>s!=0)发现输入零也不停止循环,要写while(cin>>s&&s!=0)这样或者while(cin>>s,s)这样才行,以后记住了。