以下是一个使用C语言实现的代码片段,它会找出并存储2到100之间的所有素数,并将它们输出到控制台。该程序的核心思想是利用素数的性质,即如果一个数不是素数,那么它必定可以分解为两个数的乘积,其中一个数必定小于或等于它的平方根。
c
#include #include #include #definen100 intmain(){ inta[n+1]={0}; inti,j; for(i=2;i<=sqrt(n);i++){ if(a[i]==0){//如果i是素数 for(j=2*i;j<=n;j+=i){ a[j]=1;//标记j为合数 } } } for(i=2;i<=n;i++){ if(a[i]==0){ printf("%d",i);//输出素数 } } return0; } 程序首先初始化一个大小为n+1的数组a,表示2到n的整数。接着,通过嵌套循环遍历,如果当前的i是素数(a[i]为0),就将i的所有倍数标记为合数(a[j]=1)。最后,遍历整个数组,输出未被标记的数(即素数)。