2016-12-04 115 views
-5

我應該用java編寫一個程序,它允許用戶確定他想要顯示的素數的數量(數量)。 我已經設法編寫了一個程序,用戶可以在其中指定最大素數。 我可以請你提一些建議嗎?素數與鍵盤輸入

import java.util.Scanner; 

public class PrimeNumbers{ 
    public static void main(String[] agrs){ 

    int max; 

    Scanner sk = new Scanner(System.in); 
    System.out.print("How many prime numbers you want to display? "); 
    max = sk.nextInt(); 

    System.out.print("Prime numbers: "); 

    for(int x =2; x <= max; x++){ 
     boolean isPrime = true; 
     for(int y = 2; y < x; y++){ 
      if(x % y == 0){  
       isPrime = false; 
       break; 
     } 
     }if (isPrime){ 
      System.out.print(x + " "); 
    } 

} System.out.print("..."); 
} 
} 

如果即把我作爲一個用戶5,我得到的只有2,3,5 但我希望得到的結果是:2,3,5,7,11

+0

我想你的意思是用戶指定要打印的素數,這是我如何回答它。 –

+2

歡迎來到Stack Overflow!看起來你正在尋求作業幫助。雖然我們本身沒有任何問題,但請觀察這些[應做和不應該](http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions/338845#338845),並相應地編輯您的問題。 –

回答

0

曲目的數量你打印的素數,不是x。檢查您是否打印足夠。

import java.util.Scanner; 

public class PrimeNumbers{ public static void main(String[] agrs){ 

int max; 
int numPrinted=0; 
Scanner sk = new Scanner(System.in); 
System.out.print("How many prime numbers you want to display? "); 
max = sk.nextInt(); 

System.out.print("Prime numbers: "); 

for(int x =2; numPrinted < max; x++){ 
    boolean isPrime = true; 
    for(int y = 2; y < x; y++){ 
     if(x % y == 0){  
      isPrime = false; 
      break; 
    } 
    }if (isPrime){ 
     System.out.print(x + " "); 
     numPrinted++; 
} 

} System.out.print("..."); 

} } 
+0

非常感謝你! :) – KejP

+0

@KejP。 Ubetcha。我懷疑你說的話是你的意思。另外,如果你喜歡答案,請接受它。 –