打印从 1 到 100 的素数

新手上路,请多包涵

这个程序应该输出 1 到 100 之间的质数。有人能解释一下下面程序的流程吗?我在编写下面的程序时遇到困难。我确实在互联网上找到了它,但我仍然无法弄清楚它是如何工作的以及程序的流程如何?

 public class GeneratePrimeNumbersExample {

    public static void main(String[] args) {

            //define limit
            int limit = 100;

            System.out.println("Prime numbers between 1 and " + limit);

            //loop through the numbers one by one
            for(int i=1; i < 100; i++){

                    boolean isPrime = true;

                    //check to see if the number is prime
                    for(int j=2; j < i ; j++){

                            if(i % j == 0){
                                    isPrime = false;
                                    break;
                            }
                    }
                    // print the number
                    if(isPrime)
                            System.out.print(i + " ");
            }
    }
}

素数示例的输出将是 1 到 100 之间的素数

1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

原文由 Jai 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 291
1 个回答

您将如何使用普通解决方案找到质数? 如果数字是质数。它不会是除自身以外的任何数字的倍数。所以假设数字是x。当从 2 开始直到 x-1 时,这个数字不会被任何数字整除。为什么从 2 而不是 1 开始,因为每个数字都可以被 1 整除。上面的代码试图复制相同的行为。要找到 1 到 99 之间的所有素数(根据循环):

  1. 从 2 到数字(外循环 - 1)
  2. 尝试除以数字并检查它是否可以整除。 (余数应为零)。
  3. 如果真数不是质数。其他数是质数。

原文由 Himanshu Bhardwaj 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题