遇到了一个要求用筛法求小于n的素数的算法题目
以前在上课时也写过不少次求素数的算法,今天汇总一下,然后试一下筛法。
先写一个函数,功能是判断x是否是素数
int panduan(int x) //判断x是否为素数
{
if(x==1)return 0; //1不是素数
int i;
int y=sqrt(x); //x的“因数对”除了两个根号x相等外,其他的一对因数一定是一大一小
for(i=2;i<=y;i++)
{
if(x%i==0)break;
}
if(i==y+1)return 1; //素数返回1
else return 0;
}
如果题目的要求是:
输入整数X
输出小于等于x的素数
那么只要在用一个循环,从1开始到x,依次判断是否为素数,并将素数输出就可以了:
int