c语言编程输出1到100之间素数并求和,在线等,急

如题所述

#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;}                           //结束

追问

非常感谢,但是你用的我还看不懂,可以用基本的循环嘛

追答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;}                     //结束

温馨提示:答案为网友推荐,仅供参考
相似回答