2013-08-01 61 views
-3

輸入行包含三個正整數:rsa,其中(2 <= r < s < a)。保證r是主要的。如何檢查數字是否爲連續素數?

它應該打印YES,如果s是下一個素數後ras之後的下一個素數;否則,應打印NO

目前,我有以下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; 
} 
+6

您對連續需求有什麼要求?如果你還沒有嘗試過,我們不會做你的功課。 – hexafraction

+0

這是我對此感到困惑的一件事。並且需要幫助。任何指針將不勝感激 – Pritish

+1

他們都是素數?他們之間的任何數字是否是最好的? – Geobits

回答

1

試試這個:

public int nextPrime(int start){ 
    int next = start+1; 

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

    return next; 
} 

public void arePrimeSequence(int r, int s, int a){ 
    int firstPrime = nextPrime(r); 
    int secondPrime = nextPrime(firstPrime); 

    if(s == firstPrime && a == secondPrime){ 
     System.out.println("YES"); 
    } 
    else{ 
     System.out.println("NO"); 
    } 
} 
0

一些改進可以在代碼來確定下任首相進行。相反,由1遞增的,你可以通過2.增加數量作爲第一個數字是保證爲總理,如果不是2,則通過增加2

公衆詮釋nextPrime(INT啓動){

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

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

return next; 

}