2017-10-15 91 views
-4
public class Chpt5_Project{ 
public static void main(String[] args) { 
    // Declare Variables 
    int randomNumbers = 0; 
    int sum = 0; 
    //Loop for number generation and print out numbers 
    System.out.print("The five random numbers are: "); 
    for (int i = 0; i <= 4; i++) 
    { 
     randomNumbers = (int)(Math.random()*20); 
     sum += randomNumbers; 

     if (i == 4) { 
      System.out.println("and " + randomNumbers + "."); 
     } 
     else { 
      System.out.print(randomNumbers + ", "); 
     } 
    } 
    //Display Sum 
    System.out.println("\nThe sum of these five numbers is " + sum + ".\n"); 

// Test if number is prime 
    boolean isPrime = true; 
     for (int divisor = 2; divisor <= sum/2; divisor++) 
     if (sum % divisor == 0) { // If true, number is not prime 
      isPrime = false; // Set isPrime to false 

      System.out.println("The sum is not a prime number.");} 
     else { 
       System.out.println("The sum is a prime number."); 
      break; 
     } 

    } 
} 

樣本輸出分析Java中的素數輸出。沒有獲得輸出作爲預期

的五個隨機數是:5,0,10,6,和13

這五個數之和爲34。

總和不是質數。總和是一個素數。

+0

你忘了問一個問題......代碼轉儲沒有解釋你試圖做什麼通常不是一個好主意。 – alfasin

+0

對不起,我還是這個新手。當數字結果不是素數時,我不理解爲什麼我從兩個打印行獲得輸出。當結果是素數時,輸出如預期。我究竟做錯了什麼? – bwillo

+0

請編輯您的原始問題與所有這些信息。 –

回答

0

您需要添加括號中的for-loop,然後添加內if-statementbreak聲明。

for (int divisor = 2; divisor <= sum/2; divisor++){ 

     if (sum % divisor == 0) { // If true, number is not prime 
       isPrime = false; // Set isPrime to false 
       System.out.println("The sum is not a prime number."); 
       break; 
     } 
     else { 
      System.out.println("The sum is a prime number."); 
      break; 
     } 
} 
+0

謝謝,看起來像這樣解決了我的問題。非常感激! – bwillo