c语言问题!定义函数int f(int n)求1—100内的所有素数及其和。新手,求大神解答!谢谢!

希望编写的程序能够正确运行!谢谢了!

第1个回答  2012-05-30
#include<stdio.h>
int f(int);
int isPrime(int); //声明函数原型
int main(int argc,char *argv[]){
printf("1-100之间的素数的和为:%d\n",f(100));
return 0;
}
int f(int n){ //对函数定义
int sum=0;
int k=1;
for(;k<=n;k++)
if(isPrime(k)==1)
sum+=k;
return sum;
}
int isPrime(int data){
int flag=1;
int i=2;
if(data<=1)
flag=-1;
if(data==2)
flag=1;
if(data>2)
for(;i<=(int)(data/2+1);i++)
if(data%i==0){
flag=-1;
break;
}
return flag;
}
第2个回答  2012-05-29
#include<iostream>
#include<cmath>
using namespace std;

int f(int n)
{
int flag;
int k = (int)sqrt(n);
for(int i = 2; i <= k; i++)
{
flag = 1;
if(n % i == 0)
{
flag = 0;
break;
}
}
return flag;
}

int main()
{
for(int i = 2; i < 100; i++)
{
if(f(i))
{
cout<<i<<" ";
int m;
m++;
if(m % 10 == 0)
cout<<endl;
}
else
continue;
}
return 0;
}
第3个回答  2012-05-29
#include<stdio.h>
int f(int n)
{
int i;
for(i = 2;i*i<=n;i++)
if(n%i == 0) return 0;
return 1;
}
int main()
{
int i,sum = 0;
for(i = 2;i<=100;i++) {
if(f(i)) {
sum += i;
printf("%d ",i);
}
}
printf("\n%d\n",sum);
return 0;

}本回答被提问者采纳
相似回答