学习历程-素数打表

xiaoxiao2021-02-28  84

#include<stdio.h> #include<string.h> int main() { int a[10000],n,b[10000],t,i,u; while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); t=0; for(i=2;i<=n;i++) { if(a[i]==0) { a[i]=1; b[t++]=i; for(u=i+i;u<=n;u+=i) { a[u]=1; } } } for(i=0;i<t;i++) { printf("%d ",b[i]); } printf("\n"); } return 0; }

方法:

使用数组,对其全部赋0,表示未被标记。一个数

的倍数肯定不是素数,故循环从2开始将所所有数

的倍数标记,循环后未被标记的就是素数。

转载请注明原文地址: https://www.6miu.com/read-54351.html

最新回复(0)