2013-08-01 4 views
-3

입력 행에는 r, sa 인 3 개의 양의 정수가 포함됩니다. 여기에서 (2 <= r < s < a)입니다. r이 소수임을 보장합니다.숫자가 연속 소수인지 어떻게 확인할 수 있습니까?

sras 후 다음 소수 후 다음 소수 인 경우는, YES를 인쇄한다 그렇지 않으면 NO이 인쇄됩니다.

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

일부 개선이 다음 총리를 결정하는 코드에서 할 수

현재, 나는 다음과 같은 isPrime() 방법이있다.

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

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

return next; 

{대신 1 씩 증가 당신은 첫 번째 숫자는 소수로 보장되기 때문에 2로 수를 증가 할 수 있으며 2가 아닌 경우 2.

공공 INT nextPrime (INT 시작)에 의해 다음 증가 }

관련 문제