使用isPrime求10000以内的素数个数,用java实现

2024-11-24 06:46:00
推荐回答(2个)
回答(1):

public static boolean isPrime(int x)
{
int i;
if(x<2)//排除小于2的整数
{
return false;
}
else if(x==2)//2是唯一一个是质数的偶数
{
return true;
}
else if(x%2==0)//其他偶数全都不是质数
{
return false;
}
else for(i=1;;)
{
i=i+2;//从i=3开始,只有奇数可能是质数
if(i>=Math.sqrt(x))//满足该条件后已经不可能找到更大的奇数可能整除x
{
break;
}
if(x%i==0)//x能和任意一个奇数整除时都不是质数
{
return false;
}
}
if(i>Math.sqrt(x)) //判断x是不是完全平方数
{
return true;
}
return false;/*该返回语句没有必要,因为上面所有的分支都做了返回处理,但是Java强制要求在函数结尾写返回语句*/
}

回答(2):

static boolean isPrime(double n) {
for (int i = 2; i < n; i++) {
double d = n / i;
if (d == (int) d) {//能被别的数整除,不是
return false;
}
}
return true;
}

自己合计一下呗