2 回答
TA贡献1795条经验 获得超7个赞
我们可以做这样的事情吗?
int num=103;
for(l=num+1;;l++)
{
if(l%10==1)
{
for(k=2;k<l;k++)
{
if(l%k==0)
break;
}
if(k==l)
{
System.out.println("Next prime no is:"+l);
break;
}
}
}
TA贡献1829条经验 获得超7个赞
我认为你可以做得比@ShashankGupta 建议的“加 1 并测试后面的每个数字是否以 1 结尾并且是质数”更好。一旦我们找到下一个以“1”结尾的数字(使用算术,而不是循环),我们只需要从那时起检查每十分之一的数字:
public static int next_one_prime(int number)
{
// next number ending in '1'
number += 1 + Math.floorMod(-number % 10, 10);
outer: while (true)
{
for (int k = 3; k * k <= number; k += 2)
{
if (number % k == 0)
{
number += 10;
continue outer;
}
}
return number; // next prime ending in '1'
}
}
添加回答
举报