c++改错
求高手指点啊,一个程序要求100内的所有可以表示为连续素数之和的素数,。最终显示为5=2+3
。。。。。。
83=11+13+17+19+23
97=29+31+37
改了半天还是不对,求高手指点下啊
#include<iostream.h>
#include<math.h>
#include<string.h>
int primes[25];
int isprime(int n)
{
for (int i=2;i<=sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
int fun(int i,int &j,int &k)
{
int sum;
j=k=0;
while(k<i)
{
sum+=primes[k];
if(sum>primes[i-1])
{
j++;
k++;
sum=0;
}
else if(sum<primes[i-1])
k++;
else
return 1;
}
return 0;
}
void main()
{
int i,j,low,high,count=0;
for(i=2;i<100;i++)
{
if(isprime(i)) primes[count++]=i;
}
cout<<"小于100的素数中满足条件的素数为:"<<endl;
for(i=0;i<count;i++)
{
if(fun(i+1,low,high))
{
cout<<primes[i]<<"=";
for(j=low;j<high;j++) cout<<primes[j]<<"+";
cout<<primes[high]<<endl;
}
}
}