2016-08-30 96 views
0

我一直在這個程序上工作幾個小時,代碼工作正常,但我似乎無法讓它正確打印出來,它應該只是爲每個值打印一次,如:正確打印Java中的循環

數:6

分頻器:2 3 6 1

素:不是素數

Output

可以在任何一個幫助?截圖附上。謝謝!

public static void main(String[] args) { 

    Random randomNums = new Random(); 

    int count; 

    for (int i = 1; i <= 37; i++) { 

     count = randomNums.nextInt(100) + 1; 
     System.out.println("number " + count); 

    for (int b = 1; b<=count; b++) { 
     if (count % b == 0) { 
      System.out.println("dividers " + b); 
     } 

    } 
    for (int a = 2; a< count; a++) { 
     if (count % a == 0) { 
      System.out.println("is not prime"); 
     } 
     if (count % a != 0) { 
      System.out.println("is prime"); 
     } 
     }  
    }  
    }  
} 
+0

'for(int i = 1;我<= 37;我++){'你爲什麼這樣做? –

+0

你期望的輸出是什麼。請告訴使用什麼是錯的? –

+0

你不應該檢查有多少可能的計數值是分頻器,然後'(計數%a == 0)'? – lucasmonteiro001

回答

0

嘗試寫驗證碼:

public static void main(String[] args) { 

    Random randomNums = new Random(); 

    int count; 

    for (int i = 1; i <= 37; i++) { 

     count = randomNums.nextInt(100) + 1; 
     System.out.println("number " + count); 
    String dividers = ""; 
    for (int b = 1; b<=count; b++) { 
     if (count % b == 0) { 
      dividers += b.toString() +" "; 
     } 

    } 
    // control the print beside loop 
    System.out.println("dividers " + dividers); 
    // add the control for whether prime 
    bool prime = true; 
    for (int a = 2; a< count; a++) { 
     if (count % a == 0) { 
      System.out.println("prime : is not prime"); 
      // add the control for skip loop 
      prime = false; 
      break; 
     } 
    } 
    if(prime){ 
    System.out.println("prime : is prime"); 
    }  
    }  
}  

}

+0

非常感謝! – Millie

0

根據你的邏輯,我猜,如果你決定,一些是一個素數,那麼這是最後的結果,

所以

boolean isPrime = true; 
String dividers = ""; 
for (int a = 2; a< count; a++) { 
    if (count % a == 0) { 
     isPrime = false; 
     dividers += a+" "; 
    } 
} 

if (isPrime) { 
    System.out.println ("is Prime"); 
} else { 
    System.out.println ("dividers "+dividers); 
    System.out.println ("is not Prime"); 
} 
+0

如果數字不是素數,他可能會想要看分隔符 –

+0

@SenthilkumarAnnadurai感謝您的編輯。 –