2013-06-25 7 views
-6

어떻게 주요 기능에서 프라임을 인쇄 할 수 있습니까? 내 코드는 당신이 boolean 배열을 인쇄하지 않을 것 같습니다부울 배열을 Java로 인쇄

public static boolean[] sieve(int n) { 
    boolean[] prime = new boolean[n+1]; 
    Arrays.fill(prime, true); 
    prime[0] = false; 
    prime[1] = false; 
    int m = (int) Math.sqrt(n); 

    for (int i = 2; i < m; i++) { 
     if (prime[i]) 
      for (int k=i*i; k<=n; k+=i) 
       prime[k] = false; 
    } 
    return prime; 
} 
+6

['Arrays # toString (boolean [])'] (http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#toString%28double [] % 29) –

답변

1

... 아래와 같습니다 : 그것은 거의 사용합니다. Sieve of Eratosthenes에서 소수를 인쇄 할 필요가 있습니다. 이는 인덱스를 열거하고 primes[i]true인지 확인하고 가능한 경우 인덱스를 인쇄하여 수행 할 수 있습니다.

boolean primes = sieve(100); 
for (int i = 0 ; i <= 100 ; i++) { 
    if (primes[i]) { 
     // This is where you print i or do whatever else you think is appropriate 
    } 
} 
1

원하십니까?

public static void getPrime(int n) { 
    boolean[] arr = new boolean[n+1]; 
    for (int i = 0; i < arr.length; i++) { 
     arr[i] = isPrime(i); 
     System.out.println(i + "," + arr[i]); 
    } 

} 

public static boolean isPrime(int i) { 
    if (i == 0) { 
     return false; 
    } 
    for (int j = 2; j < i; j++) { 
     if (i % j == 0) 
      return false; 
    } 
    return true; 
} 

는 n 개의 프라임 1에서 확인 할 또는 당신은 단지 소수를해야하는 경우

public static void getPrime(int n) { 
    for (int i = 0; i < n+1; i++) { 
     System.out.println(i + "," + isPrime(i)); 
    } 

} 

public static String isPrime(int i) { 
    if (i == 0) { 
     return "Not a prime"; 
    } 
    for (int j = 2; j < i; j++) { 
     if (i % j == 0) 
      return "Not a prime"; 
    } 
    return "prime"; 
} 

를 다음과 같이 당신이 그것을 할 수없는 경우 followa

public static void getPrime(int n) { 
    for (int i = 0; i < n+1; i++) { 
     if(isPrime(i)) 
     { 
      System.out.println(i); 
     } 
    } 

} 

public static boolean isPrime(int i) { 
    if (i == 0) { 
     return false; 
    } 
    for (int j = 2; j < i; j++) { 
     if (i % j == 0) 
      return false; 
    } 
    return true; 
} 
로 그것을 할 수 있습니다
+0

아뇨. 이건 프라임을 계산하는 좋은 알고리즘입니까? –

+0

1에서 n까지의 소수를 찾으려면이 코드를 사용하십시오. 그러나 다음과 같이 단순화 할 수 있습니다. public static void getPrime (int n) { for (int i = 0; i

관련 문제