✅判断101-200之间有多少个质数,并输出所有质数

典型回答

质数(或素数)是指只有1和它本身两个正因数的自然数。如3,他只能被1和3整除,所以他就是一个质数。4可以被2整除,所以他不是质数。

要找出101-200之间的所有质数,最基本的方法是尝试将它除以比它小的所有自然数,如果能被除尽,则不是质数;否则,它就是一个质数。不过,实际上只需要检查到其平方根即可,因为如果n不是质数,则它必定有一个因子小于或等于sqrt(n)。

假设n = 36,其平方根是6。36的因子包括:1, 2, 3, 4, 6, 9, 12, 18, 36。

  • 因子对可以列为:(1, 36), (2, 18), (3, 12), (4, 9), (6, 6)。
  • 注意到所有的因子对都至少有一个因子小于或等于6(36的平方根)。
  • 对于任何大于6的数,如9,它的因子对是(4, 9),其中4小于6。
public class PrimeNumbers {

    public static void main(String[] args) {
        int count = 0; // 用于统计质数的数量
        for (int i = 101; i <= 200; i++) {
            if (isPrime(i)) {
                System.out.println(i); // 输出质数
                count++;
            }
        }
        System.out.println("Total prime numbers between 101 and 200: " + count);
    }

    public static boolean isPrime(int n) {
        // 0和1不是质数,小于0的数也不是质数
        if (n <= 1) {
            return false;
        }
        // 检查从2到n的平方根是否有因子
        for (int i = 2; i <= Math.sqrt(n); i++) {
            // 如果n能被i整除,说明n不是质数
            if (n % i == 0) {
                return false;
            }
        }
        // 如果没有找到任何因子,说明n是质数
        return true;
    }
}

这段代码定义了一个isPrime方法,用于判断一个整数n是否为质数。在主方法main中,我们遍历了101到200之间的所有数,对每个数调用isPrime方法进行检查。如果是质数,则输出这个数,并将质数的数量加1。最后,输出101-200之间质数的总数。

原文: https://www.yuque.com/hollis666/xkm7k3/ube44r1vyc5w4kx4