Eratosthenes 筛选求质数
发布日期:2021-07-20 21:52:38 浏览次数:9 分类:技术文章

本文共 1718 字,大约阅读时间需要 5 分钟。

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的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。 */

转载地址:https://blog.csdn.net/lifei128/article/details/82392976 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:No operations allowed after statement closed.
下一篇:树的宽度

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年09月12日 10时12分39秒