C语言编程,输出素数,统计个数并求和

用C语言循环控制程序输出50至100之间的素数,并求和,统计他们的个数,五个就换行。小弟只会做怎么求素数,但是求和统计和换行都写不对,小弟是初学者,希望各位大大能用一些简单的循环控制语言,那种用return语言的看不懂,各位帮帮小弟,不胜感激

#include<stdio.h>
#include<math.h>
int IsPrime(int num);
void main()
{
int cnt = 0;
int sum = 0;
int arrPrime[55];
int i;
for (i=50;i<=100;i++)
{
if (IsPrime(i) == 1)
{
arrPrime[cnt++] = i;
sum += i;
}
}

printf("50-100之间共有素数的个数为:%d\n",cnt);
printf("50-100之间所有的素数的和为:%d\n",sum);
printf("50-100之间所有的素数如下:\n");
for (i=0;i<cnt;i++)
{
printf("%6d",arrPrime[i]);
if ((i+1) % 5 == 0)
{
printf("\n");
}
}
getchar();
}

/*
判断一个数是不是素数,如果是则返回1,否则返回0
*/
int IsPrime(int num)
{
int j;
if (num <= 1)
{
return 0;
}
if (num == 2)
{
return 1;
}
for (j=2;j<=(int)sqrt(num);j++)
{
if (num%j == 0)
{
return 0;
}
}
return 1;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-19
#include
<iostream>
#include
<math.h>
using
namespace
std;
void
FindPrime(int
start,int
end)
{
int
i,j,x,c=0,s=0;
for(i=start;i<=end;i++)
{
x=sqrt(i);
for(j=2;j<=x;j++)
if(i%j==0)break;
if(j>x){
c++;
s+=i;
cout<<i<<"
";
if(c%5==0)
cout<<endl;
}
}
cout<<"
prime
total
number
is
"<<c<<",sum
is
"<<s<<endl;
}
void
main()
{
FindPrime(50,100);
}
第2个回答  2010-04-28
#include <iostream>
#include <math.h>

using namespace std;
void FindPrime(int start,int end)
{ int i,j,x,c=0,s=0;
for(i=start;i<=end;i++)
{
x=sqrt(i);
for(j=2;j<=x;j++)
if(i%j==0)break;
if(j>x){
c++;
s+=i;
cout<<i<<" ";
if(c%5==0)
cout<<endl;
}

}

cout<<"\nprime total number is "<<c<<",sum is "<<s<<endl;
}

void main()
{
FindPrime(50,100);
}本回答被网友采纳