C语言编程求解1到n之间所有素数之和

2024-12-04 19:30:35
推荐回答(3个)
回答1:

#include
#include

int isPrime(int n)   ///是素数返回1,否则返回0
{
int i,k;
k = (int)sqrt(n);
for(i = 2; i <= k;i++)
{
     if(n % i == 0)   
        break;
}
if(i > k)
      return 1;
else
       return 0;
}

void main()
{
   int n,i,k,sum=0;
   printf("输入大于等于1的整数:n\n");
   scanf("%d",&n);
for(i=1;i<=n;i++)
{
 if (isPrime(i)==1)
 {
  sum+=i;
 }
}
printf("%d",sum);
}

回答2:

#include

int isprime(int k)
{
int i;
for(i=2;i*i<=k;i++)//这个比较简单通过i*i<=k 来求k的开方i
//2*4=8, 只要判断2和3就可以判断他是否为素数,因为判断了2是否为因素就知道8/2=4为8的/
/////因/素
{
if(k%i==0)
return 0;
}
return 1;
}

int main()
{
int i, n, sum=0;
scanf("%d", &n);
for(i=2;i<=n;i++)
{
if(isprime(i))
sum+=i;
}
printf("%d", sum);
return 0;
}

回答3:

返回bool比较方便吧
bool isprime(int k){
int j,i=k/2;
for(j=2;j<=i ; j++)
if(k%j==0)
return false;
return true;
}