首页 > 代码库 > 求1到100以内的素数(质数)

求1到100以内的素数(质数)

  在我还没有学习JAVA之前我被一个还上初中的兄弟问到:一百以内有多少个质数,分别都是几呢,它们的和是多少?。虽然我们都知道质数的概念:质数又称素数,是指一个大于1的自然数中,除了1和其自身外,没法被其他自然数整除的数。我当时蒙圈了,都是哪些数字嘛我还能一一说出来,至于多少个嘛,数一数就好了。可是求和就浪费时间了。 后来身为小白的我刚接触JAVA这个行业,我也遇到求素数的题目。发现我在网上搜索答案的时候发现一些代码没有优化就提交了。我学习JAVA也有一个来月了,回头再看看我写的代码感觉效率好慢也是没有优化。在当时学习到的一些小知识点竟然没有运用。现在我也想分享一下我简单优化后的代码,后期还能优化就更好了:

public static void main(String[] args) {

   int count = 0;
   int sum = 0;
  for (int i = 2; i <= 100; i++) {
    boolean flag = false;
    for (int j = 2; j <= i >> 1; j++) {
     if (i % j == 0) {
        flag = true;
        break;
      }
  }
  if (!flag) {
    System.out.print(i + " ");
    sum += i;
    count++;
    }
  }
  System.out.println();
  System.out.println("1--100之间的素数(也称质数)的个数 -->"+count);
  System.out.println("1--100之间的素数(也称质数)的个数之和 -->"+sum);
}

  

求1到100以内的素数(质数)