显示一定数量的素数

时间:2015-10-14 09:16:25

标签: java arrays primes

我一直在研究一些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:");
            }

        }

    }

}

2 个答案:

答案 0 :(得分:0)

对于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--;
      }    
    }    
  }    
}

答案 1 :(得分:0)

为此,您必须在i的for循环中设置上限值。就像你只想要前20个素数所以

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:");
            }}}}