用C语言求解1-100之间的所有素数。

尽量写出程序设计思路、关键语句及解释、程序输出结果
谢谢啦

Action()

{

int i,j;

int sum=0;

int flag;//是否为素数

for(i=2;i<=100;i++){

flag=1;

for(j=2;j<=i-1;j++){

if(i%j==0){

flag=0;

break;

}

}

if(flag==1){

sum+=i;

}

}

lr_output_message("sum=%d",sum);

return 0;

}

输出的结果:sum=1060

扩展资料:

方法二、使用函数:

Action()

{

int i;

int sum=0;

for(i=2;i<=100;i++){

if(isPrime(i)){

sum+=i;

}

}

lr_output_message("素数之和sum=%d",sum);//loadrunner的输出,其他编译器可能是printf

return 0;

}

int isPrime(a){

int j;

int flag=1;

for(j=2;j<=a-1;j++){

if(a%j==0){

flag=0;

break;

}

}

return flag;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-12
#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;
}

本回答被提问者和网友采纳
第2个回答  2014-04-14

主要是素数的判定

int prim(int m)
{
    int i=2;
    int result = 0;
    for(i=2;i<m;i++)
    {
        if(m%i==0)//模运算,求余数
        {
            result = 1;
            break;
        }
    }
    return result;
}
int main()
{
    int i;
    for(i=2;i<=100;i++)
    {
        if(!prim(i))
            printf("%5d",i);
    }
}

第3个回答  2020-03-11
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c;
for(a=1;a<=100;a++)
{
for(b=1,c=0;b<=a;b++)
if(a%b==0) c++;
if(c<=2) printf("%d\n",a);

}
system("pause");
return 0;
}
第4个回答  2018-06-29
  1 #include <stdio.h>
  2 
  3 int main(void){
  4     int i = 0;
  5     int j = 0;
  6     int cnt = 0;//cnt表示被整除的次数
  7     int size = 0;//size表示素数个数
  8     for(i = 2;i <= 100;i++){//1不是素数 所以从2开始循环
  9         for(j = 2;j <= 100;j++){
 10             if(i % j == 0){
 11                 cnt++;
 12             }
 13         }
 14         if(cnt == 1){
 15             printf("%d ",i);
 16             size++;
 17         }
 18         cnt = 0;
 19     }
 20     printf("\n");
 21     printf("%d\n",size);
 22     return 0;
 23 }
 
 输出结果:
 
 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 
 25

相似回答