素数 / 质数 - -z-w-h

import java.util.ArrayList;
import java.util.List;

/**

    1. 素数 prime numbers
      */
      public class PrimeNumbers {
      public static void main(String[] args) {
      // 测试判断素数
      int num = 17;
      System.out.println(num + " 是素数吗?" + isPrime(num));

      // 输出100以内所有素数
      int n = 100;
      List primes = getPrimesWithin(n);
      System.out.println(n + "以内的素数:" + primes);
      System.out.println("总数:" + primes.size() + "个");
      }

    /**

    • 判断一个数是否为素数
      */
      public static boolean isPrime(int num) {
      if (num < 2) return false;
      // 优化:只判断到平方根即可,因数成对出现
      for (int i = 2; i <= Math.sqrt(num); i++) {
      if (num % i == 0) return false;
      }
      return true;
      }

    /**

    • 获取n以内的所有素数
      */
      public static List getPrimesWithin(int n) {
      List primeList = new ArrayList<>();
      for (int i = 2; i <= n; i++) {
      if (isPrime(i)) primeList.add(i);
      }
      return primeList;
      }
      }