判断质数的方式

1. 给定一个数 num,求[0, num]内的质数

思路

  • 如果一个数是非质数,那么它的n被也一定是非质数
 public static void main(String[] args) {
        int max = 300;
        boolean[] prime = new boolean[max];
        prime[0] = true; // 0是非质数
        prime[1] = true; // 1是非质数
        int num = 2, i;
        while (num < max) {
            if (!prime[num]) {
                for (i = num + num; i < max; i+=num) {
                    if (prime[i]) {
                        continue;
                    }
                    prime[i] = true; // 设置为true,代表为非质数
                }
            }
            num++;
        }

        System.out.println("1 到" + max + "间的所有质数:");
        for (i = 2, num = 0; i < max; i++) {
            if (!prime[i]) {
                System.out.print(i + "\t");
                num++;
            }
        }
        System.out.println("质数总和:" + num);
    }

你可能感兴趣的:(判断质数的方式)