c语言求100以内素数的和

C语言编程:求100以内素数的和

1解:
#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;
}

2解:
#include<stdio.h>
int isPrime(int a)
void main()
{
int i,sum=0;
for(i=1;i<=100;i++)
{
if(isPrime(i))
sum+=i;
}
printf("100以内所有素数的和为:\n%d\n",sum);
}

int isPrime(int num)
{
int i,tag=1;
for(i=2;tag&&i<=num/2;i++)
if(num%i==0)
tag=0;
return tag;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-08-27
#include <stdio.h>
#include <math.h>
main()
{
int i,j,n,a[101],sum=0;
for(i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for(i=2;i<sqrt(100);i++)
for(j=i+1;j<=100;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;

}

for(i=1,n=0;i<=100;i++)
{
if(a[i]!=0)
{
printf("%5d",a[i]);
n++;
sum+=a[i];
}
if(n%5==0) printf("\n");
}
printf("\n%d",sum);
}
}
第2个回答  2008-08-27
main()
{
int h=3,i,j;
for(i=3;i<100)
{
for(j=2;j<=i/2;j++)
if(i%j==0) break;
if(j>i/2) h=h+i;
}
printf("\n%d",h);
}
第3个回答  2008-08-27
#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;
}
相似回答