我用C语言做出来了,但是你的范围太大,程序执行时间很长,在我电脑上能求10000以内的,只要改变循环里面的范围就行了
#include
bool fun(int n)
{
int i;
for(i = 2; i < n; i++)
if(n % i == 0)
return false;
return true;
}
int main()
{
int i,j,k,m,n,a = 0,min,max;
for(j = 2; j < 1000; j++)
{
if(fun(j))
{
m = 0,k = 0;
for(i = j; i a)
{
n = m;
a = k;
min = j;
max = i;
}
}
}
}
printf("从 %d 到 %d 的连续 %d 个质数和为%dn",min,max,k,n);
return 0;
}
运行结果:
#include
bool fun(int n)
{
int i;
for(i = 2; i < n; i++)
if(n % i == 0)
return false;
return true;
}
int main()
{
int i,j,k,m,n,a = 0,min,max;
for(j = 2; j < 1000; j++)
{
if(fun(j))
{
m = 0,k = 0;
for(i = j; i a)
{
n = m;
a = k;
min = j;
max = i;
}
}
}
}
printf("从 %d 到 %d 的连续 %d 个质数和为%dn",min,max,a,n);
return 0;
}
运行结果:
从 3 到 317 的连续 65 个质数和为9521
Press any key to continue
改变范围后;
从 7 到 89 的连续 21 个质数和为953
Press any key to continue
从 2 到 13 的连续 6 个质数和为41
Press any key to continue