求素数的n种方法,有的不懂,请大虾赐教。
#include <stdio.h>#include <math.h>
void main()
{
int i,j;
for(i=2;i<=100;i++)
{
for(j=2;j<sqrt(i);j++)
if(i%j==0)
break;
if(i%j!=0)
printf("%d\t",i );
}
}
------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <math.h>
void main()
{
int i,j;
for(i=2;i<=100;i++)
{
for(j=2;j<sqrt(i);j++)
if(i%j==0)
break;
if(j>sqrt(i))
printf("%d\t",i );
}
}
------------------------------------------------------------------------------------------------------
#include <stdio.h>
void main()
{
int i,j;
for(i=2;i<=100;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
if(i==j)
printf("%d\t",i );
}
}
-------------------------------------------------------------------------------------------------------
第二种方法不太懂,为什么是要if(j>sqrt(i))时,输出结果。上面for里面不是有j<sqrt(i)吗?下面怎么可能有j>sqrt(i)。实在搞不懂,求高首4详解啊!!还有,为什么第二个for语句不用{}括起来?