簡體   English   中英

顯示一定數量的素數

[英]Show certain amount of prime numbers

我一直在研究一些 Java 代碼來顯示素數。 我已經讓它顯示了 0 到 100 之間的所有素數。

我將如何做到這一點,以便我可以將一個變量設置為 20,它會顯示前 20 個素數。

我的代碼:

public class PrimeNumber {

    /**
     * @param args the command line arguments
     */
 private static boolean prime = true;
 private static int count =  20;

    public static void main(String[] args) {

        for (int i = 2; i < 100; i++) {
            for (int j = 2; j < 100; j++) {
                if(i == j)
                {
                    continue;
                }
                if (i % j == 0) {
                    prime = false;
                    break;
                } else {
                    prime = true;
                }
            }
            if (prime) {
                System.out.println(i + " is a Prime:");
            }

        }

    }

}

這是 OP 代碼的最簡單可能的實現。

減少count變量並在外部for loop檢查它,直到它達到zero 此外,內部 for 循環應該只檢查直到(i/2 + 1)的當前值。 另一半您可以隨時跳過,該值將除以i本身。

public class PrimeNumber {    
  /**
   * @param args the command line arguments
   */
  private static boolean prime = true;
  private static int count =  20;

  public static void main(String[] args) {

    for (int i = 2; count>0; i++) {
      for (int j = 2; j < i/2 + 1; j++) {
        if (i % j == 0) {
          prime = false;
          break;
        } else {
          prime = true;
        }
      }
      if (prime) {
        System.out.println(i + " is a Prime:");
        count--;
      }    
    }    
  }    
}

檢查以下代碼以獲得答案:

public class PrimeNumber {
private static boolean prime = true;
private static int count =  20;

    public static void main(String[] args) {

        for (int i = 2; i < count+1; i++) {
            for (int j = 2; j < 100; j++) {
                if(i == j)
                {
                    continue;
                }
                if (i % j == 0) {
                    prime = false;
                    break;
                } else {
                    prime = true;
                }
            }
            if (prime) {
                System.out.println(i + " is a Prime:");
            }}}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM