#include <stdio.h>
#include<math.h>
int main()
{
int N,i,j,k;
scanf("%d",&N);
for(i=2;i<=N;i++)
{
k=(int)sqrt((double)i);//如果i为素数,那么2~根号下i都不能被除
for(j=2;j<i;j++)
{
if(i%j==0)
{
break;
}
}
if(j>k)
{
printf("%d\n",i);
}
}
return 0;
}
求素数首先要判断是不是素数
有两个思路
思路一:素数就是这个数n能被1或者他自身整除其他数都不能把他整除,所以n如果不能被2~n-1的数字整除那么n就是素数。
思路二:
如果素数n不能被2~n-1的数字整除的话,他也不能被根号下n整除所以就有了上面那段代码k=(int)sqrt((double)i);注意数据类型转换(例如float i= 10.1f;int j=(int)i)
注意最后循环之后i为i+1所以要大于k。
然后整个套在一个for循环就可实现