#include<stdio.h>
#include<string.h>
int main()
{
//输入一个t表示求t之内的素数
int t;
scanf("%d",&t);
char a[t];
int i=0,j=0;
int count = 0;
memset(a,'y',t); //初始化,数组中所有的元素赋值为真
for(i=3;i<t;i+=2)
{
a[i-1] = 'n'; //数组下标为偶数的2 4 6 8 10 12 14 16等等通通赋值为n,即代表2 4 6 8 10 12 14 16不是质数
//printf("************%d******\n",i);
for(j=i;(j<t);j+=i)
{
if((j%i==0) && (j!=i)) //此处可看到对i=3时,有3 6 9 12 15 18 21等元素只要下标不等于3时,其他下标值均能被3整除,故不是质数,
//其余的i = 5,7等同理
{
a[j] = 'n'; //注意此处已经将所有的下标为i的倍数的赋值为假
count ++; //count用于记录循环的次数
}
}
}
a[2] = 'y';//前面操作将2设置为n,现在将其更正
//printf("***********************%d\n",count);//count用于记录循环的次数
for(i=2;i<t;i++)
{
if(a[i] == 'y')
{
printf("%d\n",i);
}
}
return 0;
}
C语言快速求范围内的素数
最新推荐文章于 2023-12-14 15:37:01 发布