-3

r入力行には、 、s、およびの3 つの正の整数が含まれていaます(2 <= r < s < a)rプライムであることは保証されています。

が次の素数であり、が次の素数であるYES場合、出力する必要があります。それ以外の場合は、印刷する必要があります。srasNO

現在、私は次のisPrime()方法を持っています:

boolean isPrime(int n)  {
    //check if n is a multiple of 2
    if (n%2==0) 
        return false;
    //if not, then just check the odds
    for(int i=3;i*i<=n;i+=2) {
        if(n%i==0)
            return false;
    }
    return true; 
}
4

2 に答える 2

0

次の素数を決定するためにコードを改善することができます。1 ずつインクリメントする代わりに、数値を 2 ずつインクリメントできます。最初の数値は素数として保証され、2 でない場合は 2 ずつインクリメントします。

public int nextPrime(int start){

if (start==2) return 3;
int next = start+2;

while(!isPrime(next)){
    next+=2;
}

return next;

}

于 2016-07-28T11:03:11.707 に答える