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'
}
}
添加回答
舉報