2 回答

TA貢獻(xiàn)1795條經(jīng)驗 獲得超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貢獻(xiàn)1829條經(jīng)驗 獲得超7個贊
我認(rèn)為你可以做得比@ShashankGupta 建議的“加 1 并測試后面的每個數(shù)字是否以 1 結(jié)尾并且是質(zhì)數(shù)”更好。一旦我們找到下一個以“1”結(jié)尾的數(shù)字(使用算術(shù),而不是循環(huán)),我們只需要從那時起檢查每十分之一的數(shù)字:
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'
}
}
添加回答
舉報