求1到100之间的素数的和 c语言

如题所述

#include <stdio.h>
#include <math.h>
int main()
{
 int i, j, k, line = 0, sum = 0;
 
 for (i = 3; i < 100; i += 2)
 {
  k = sqrt(i * 1.0);
  for (j = 2; j <= k; j++)
   if (i % j == 0)
    break;
  if (j > k)
  {
   line++;
   printf("%-2d ", i);
   sum += i;
   if (line % 5 == 0)
    printf("\n");
  }
 }
 printf("\n");
 printf("它们的和为: %d\n", sum);
 return 0;
}

运行效果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-12

#include<stdio.h>
int isprime(int n)
{for(int i=2;i*i<=n;i++)
   if(n%i==0)return 0;
 return n>1;  
}
int main()
{int i,s=0;
 for(i=1;i<101;i++)
   if(isprime(i))s+=i;
 printf("%d\n",s);
return 0;
}

本回答被网友采纳
第2个回答  2018-03-12
#include <cstdio>

  const int lim=100;
  int ans,bt[1001],ss[1001],cnt;

  void euler(){
   bt[1]=1;
   for (int i=1;i<=lim;i++){
     if (!bt[i]) {ss[++cnt]=i;ans+=i;}
     for (int j=1;j<=cnt&&ss[j]*i<=lim;j++){
       bt[ss[j]*i]=1;
if (i%ss[j]==0){
  break;
}
  }
}
  }
  
  int main(){
   euler();
   printf("%d\n",ans);
  }

第3个回答  2018-03-12

请求素数(1, 100)

第4个回答  2014-11-10
#include <stdio.h>#include <math.h>int f(int n) { int i; //素数标准:只能被自己和1整除的数字 for(i=2;i<=sqrt(n);i++) { //能被其他数整除,就不是素数 if(n%i==0) return 0; } return 1;}int main(){ int i,k=0; printf("1至100之间的素数从小到大分别为:\n"); for(i=2;i<=100;i++) { //依次判断所有数字是否为素数 if(f(i)) { k++; printf("%d\t",i); } } printf("\n总共%d个。\n",k ); return 0;}

打字不易,如满意,望采纳。
相似回答