计算100到999范围内的素数之和,要求这个素数的各个位置上的数相乘后依然是素数

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:34:39
计算100到999范围内的素数之和,要求这个素数的各个位置上的数相乘后依然是素数

写个程序很简单的啊。
for j=100, 999
flag=0,如果不是素数
for i=2, 取整(j/2)

如果 j/i是整数,说明j不是素数,flag=1,立马跳出i的循环。

end (i循环)
如果flag=0,说明j是素数,
然后判断三位之和是多少,最多就是9+9+9=27,然后27一下的素数也没几个,判断一下就行了。
如果之和还是素数,就直接打印出来。

end (j循环)

#include<iostream>
using namespace std;
int main()
{
int prime(int);
int j,k=0,sum=0,max;
for(j=100;j<1000;j++)
{
if(prime(j))
{
k++;
sum=sum+j;
max=j;
}
}
cout<<"素数个数为:"<<k<<endl;
cout<<"素数的和为:"<<sum<<endl;
cout<<"最大素数为:"<<max<<endl;
}

int prime(int n)
{
int flag=1,i;
for (i=2;i<n/2&&flag==1;i++)
if (n%i==0)
flag=0;
return (flag);
}