寻找x以内的所有质数,结果出现问题,实在找不出来
代码如下
#include<stdio.h>
#include<math.h>
int main()
{
float a=1,i=0,check=0,u,y;
int x;
printf("寻找多少以内的质数?");//寻找x以内的所有质数
scanf("%d",&x);
while(a<=x)
{
while(i!=a)//判断a是否为质数的循环检测程序,即检测a的因数有几个
{
i++;
u=a/i;
y=fmod(u,1.0);//浮点型求余
if(y==0)
check=check+1;
}
if(check==2)//如果因数为两个
{printf("%f\n",a);a++;}//则打印此质数并使a+1
else//否则
a++;//使a+1
}
return 0;
}
比如x输入为10,结果应该为2 3 5 7,但实际结果却是2

所用软件为dev c++,根据自己理解写的,求解