#include <iostream> //控制台操作
头文件#include <math.h> //数学运算头文件(sqt函数)
bool SS(int a) //
质数判断函数(质数返回1,否则0)
{if(a<2) return false; //小于2的数都不是质数,返回0
if(a==2) return true; //2是特殊的质数
int i,n=(int)sqrt(a); //n是
除数,开方可以减少检测个数
for(i=2;i<=n;i++) //逐个检测能不能被
整除 if(a%i==0) return false; //如果能被整除说明不是质数, 返回0;
return true;} //检测完了还没可以被整除的数,返回1
int main() //
主函数{int i,s=0; //i是循环变量,s是和
for(i=1;i<=100;i++) //从1-100逐个检测
if(SS(i)) //如果是
素数 {printf("%d ",i); //显示这个素数
s+=i;} //累加和
printf("\n所有素数和=%d\n",s); //显示累加结果
system("PAUSE"); //暂停
return 0;} //结束
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/79f0f736afc37931e3e2b070e6c4b74542a911e4?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问非常感谢,但是你用的我还看不懂,可以用基本的循环嘛
追答int main() //主函数
{int i,j,k,s=0; //i,j,k是循环变量,s是和
for(i=2;i<=100;i++) //从1-100逐个检测
{k=(int)sqrt(i); //取i的根号
for(j=2;j<=k;j++) //逐个检测能不能被整除
if(i%j==0) break; //如果有可以整除的数就退出循环
if(j>k){printf("%d ",i); //如果是素数就显示这个数
s+=i;}} //累加和
printf("\n所有素数和=%d\n",s); //显示累加结果
system("PAUSE"); //暂停
return 0;} //结束