爱拉托斯散筛法求出100以内的全部素数()

阅读: 评论:0

爱拉托斯散筛法求出100以内的全部素数()

爱拉托斯散筛法求出100以内的全部素数()

求100以及以内的素数
1.求【√100】=10;
2.求10及以内的素数:2、3、5、7
3.从1-100中依次删除2、3、5、7的倍数。
删除方式(从每个数的平方删起)
对于2:依次删除2^2(即2×2)、2 × 3、…、2 ×50;
对于3:依次删除3^2(即3×3)、3 × 5、…、3 × 33;
对于5:依次删除5^2(即5×5) 、5 × 7、…、5×19;
对于7:依次删除7^2(即7×7)、7×11、7×13。
注意:因为2、3、5、7的倍数会有重叠的,所以在之前已经删除过的数字就不必再次删除了。

c语言代码:

#include<stdio.h>
#include<math.h>
void findp(int part[])//寻找不大于根号100的素数 
{int num,i;for(num=2;num<=sqrt(100);++num){for(i=2;i<=num-1;++i){if(num%i==0)break;}if(i<num) part[num]=0;else part[num]=1;}printf("n小于等于根号100的所有素数为:"); for(i=2;i<=22;++i){if(part[i]==1)printf("%d  ",i);}printf("nn"); } 
void delete(int all[],int part[])//逐个删除不大于根号100的素数的倍数并打印删除的数字,打印最后的100以内的素数 
{int i,j;for(i=2;i<=10;++i){if(part[i]==1){printf("对于素数%d删除其倍数:n",i); for(j=i;i*j<=100;++j){if(all[i*j]==1) continue; elseall[i*j]=1;//删除倍数printf("%dt",i*j);}}printf("nn"); }printf("100以内的所有素数为:n"); int count=0;for(i=2;i<=100;++i){if(all[i]==0){printf("%dt",i);++count;}}printf("nn-----100以内的素数共有< %d >个-------hao",count); printf("n"); }
int main()
{printf("----------< 爱拉托斯散筛法求出100以内的全部素数 >-----------n");int a[100]={0};int p[10]={0};//sqrt(100)=10findp(p) ;delete(a,p);return 0;
}

结果:

----------< 爱拉托斯散筛法求出100以内的全部素数 >-----------小于等于根号100的所有素数为:2  3  5  7对于素数2删除其倍数:
4       6       8       10      12      14      16      18      20      22      24      26      28      30      3234      36      38      40      42      44      46      48      50      52      54      56      58      6062      64      66      68      70      72      74      76      78      80      82      84      86      8890      92      94      96      98      100对于素数3删除其倍数:
9       15      21      27      33      39      45      51      57      63      69      75      81      87      9399对于素数5删除其倍数:
25      35      55      65      85      95对于素数7删除其倍数:
49      77      91100以内的所有素数为:
2       3       5       7       11      13      17      19      23      29      31      37      41      43      4753      59      61      67      71      73      79      83      89      97-----100以内的素数共有< 25 >个-------hao

本文发布于:2024-02-05 03:04:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170722506762428.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23