Eratosthenes 筛选求质数


import java.util.Scanner;

public class Eratosthenes {

    static void getPrimes(int num){
        int []arr = new int[num +1];//长度为11的数组,能够存下表为0-10的数组,所以取10以内的数组,需要申请11长度的数组
        for (int i = 1; i <= num; i++){
            arr[i] = i;
        }
        arr[1] = 0;//1不是素数,排除1

        for (int i = 2; i < Math.sqrt(num); i++){
            for (int j = i+1; j < num; j++){
                if (arr[j] != 0 && arr[j]%i == 0){
                    arr[j] = 0;
                }
            }
        }

        for (int i = 0; i < num; i++){
            if (arr[i] != 0){
                System.out.printf(arr[i]+"\t");
            }
        }
    }


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.printf("请输入查询值:");
        int num = scanner.nextInt();
        getPrimes(num);



    }
}

===============================


import java.util.Scanner;

public class CheckPrime {


    static boolean isCheck(int x){
        for (int i = 2; i < x; i++){
//        for (int i = 2; i <= Math.sqrt(x); i++){
            if (x % 2 == 0){
                return false;
            }
        }
        return true;

    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        System.out.println(isCheck(x));
    }
}
/**
 * 2是素数,1不是素数
 *
 * 排除异常树
 * if(n < 2) return false;
 *
 * 偶数一定不适素数
 * if(n%2==0) return false;
 *
 * 定理: 如果n不是素数, 则n有满足1< d<=sqrt(n)的一个因子d.
  证明: 如果n不是素数, 则由定义n有一个因子d满足1< d< n.
  如果d大于sqrt(n), 则n/d是满足1< n/d<=sqrt(n)的一个因子.

   sqrt()是开方,开方的两个数是相等的,4*4=14,如果一个数大约平方根,那么另一个数一定小于平方根,才能满足二者的乘积等于两个平方根的积


 1、素数及相关

 素数,又称质数,在一个大于1的自然数中,除了1和此整数自身之外,不能被其他自然数整除的数。
 比1大但不是素数的数称为合数。
 1和0既不是素数,也不是合数。
 算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。


 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值