sqrt()函数求素数的问题?
#include "stdio.h"
#include "math.h"
int IsPrime(int n)
{
int i,j;
j=sqrt(n)+1;
for(i=2;i<j;i++) /*让整数 n 被从 2 到 n 的平方根之间的数一一整除*/
if(n%i==0)
return 0; /*若 n 能被其中某一个数整除,则不是素数,函数返回 0*/
return 1; /*若 n 不能被其中任何一个数整除,则 n 是素数,函数返回 1*/
}
main()
{
int i,count=0;
printf("The prime between 1 to 100 are:\n\n");
for(i=2;i<=100;i++)
{
if(IsPrime(i))
{
printf("%5d",i);
count++;
if(count%6==0)
printf("\n\n"); /*每输出 6 个素数,就另起一行*/
}
}
getch();
}
大家能帮我解释一下,为什么sqrt()能判断素数呢,谢谢了!