求100以内所有质数的和,统计质数的个数并输出每个质数(每行5个)的C语言程序(c++的)

哪位高手帮帮忙,谢谢了
帮忙用基础一点的语句

上面两位的复杂度有点高。。简单点做法,把100以内的2,3,5,7的倍数(除2之外)去掉,就是所有质数啦

#include<iostream>
#include<cmath>
using namespace std;
int main(){
int i,j,sum=0,k=0;
bool flag=true;
for(i=2;i<=100;i++)
{
if(i==2 || (i%2!=0 && i%3!=0 && i%5!=0 && i%7 != 0) )
{
if(k%5==0)
cout<<endl; //每5个换一行
k++;
cout<<i<<" ";
sum += i;
}
}
cout<<endl;
cout<<"总和为:"<<sum<<endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-30
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int i,j,sum=0,k=0;
for(i=2;i<=100;i++)
{
bool flag=true;
for(j=2;j<=sqrt(i);j++)
{
if (i%j==0)
flag=false;
}
if(flag==true)
{
k++;
cout<<i<<" ";
sum+=i;
if(k%5==0) cout<<endl;
}
}
cout<<endl;
cout<<"总和为:"<<sum<<endl;
return 0;
}
第2个回答  2010-03-30
#include <stdio.h>
#include <math.h>
int pr(int n)
{
int i;
for (i=2; i<=(int)sqrt(n); i++)
if (n%i==0) return 0;

return 1;
}
int main(void)
{
int i;
long int sum=0;
for (i=2; i<=100; i++)
sum+=pr(i)?i:0;
printf("%ld\n",sum);
return 0;
}
相似回答