java求100以内的素数示例分享


下面是一个Java程序示例,用于找出并打印100以内的所有素数(质数):


public class PrimeNumbers {
    public static void main(String[] args) {
        // 遍历2到100之间的所有数
        for (int num = 2; num <= 100; num++) {
            // 假设num是素数
            boolean isPrime = true;
            // 检查从2到num的平方根之间是否有num的因数
            for (int i = 2; i <= Math.sqrt(num); i++) {
                if (num % i == 0) {
                    // 如果找到因数,则num不是素数
                    isPrime = false;
                    break;
                }
            }
            // 如果num是素数,则打印它
            if (isPrime) {
                System.out.println(num);
            }
        }
    }
}

这个程序首先通过一个外层循环遍历2到100之间的所有整数。对于每个数`num`,它假设这个数是素数,并设置`isPrime`标志为`true`。然后,使用一个内层循环来检查从2到`num`的平方根之间是否有`num`的因数。如果找到任何因数,则将`isPrime`设置为`false`并跳出内层循环。最后,如果`isPrime`仍然为`true`,则打印出这个数,表示它是一个素数。

注意,我们只需要检查到`num`的平方根即可,因为如果`num`有一个大于其平方根的因数,那么它必定还有一个小于或等于其平方根的因数。这是优化素数检查过程的一种常用方法。