用筛法求100之内的所有素数

本文分享了一段使用C语言实现的素数筛选程序代码,该程序能够找出1到100之间的所有素数,并以整齐的格式输出这些素数及其总数。程序首先通过去除所有非素数来减少计算量,最后输出剩余的素数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <math.h>
int main()
{
     int a[101];
     int i,j,k=0;
double l;
l= sqrt(100.0);
     for(i=1;i<=100;i++)           /*对数组a进行赋值*/
         a[i]=i;
     for(j=2;j<=l;j++)     /*用一个数来对数组a进行循环求余*/
         for(i=j+1;i<=100;i++)     /*用数组a中的各个元素进行循环被除*/
         {
             if(a[i]%j==0)   /*判断数组a中的元素,能被j整除,则该元素不是素数*/
             a[i]=0;          /*如果该元素不是素数,则将该元素赋值为0*/
         }
     for(i=2;i<=100;i++)
     {
         if(a[i]!=0)      /*输出数组a中不是0的元素,即是素数*/
         {
             printf("%5d",a[i]);
             k++;         /*输出一个素数加一次,对素数个数进行记数*/
         }
         if(k%10==0)       /*控制每行输出的个数*/
             printf("\n");
     }
     printf("\n") ;
     printf(" k=%d",k);    /*k表示100内有多少个素数*/
     return 0;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值