判断素数,并输出多少以内的所有素数

介绍:

判断一个数是否为素数,并输出多少以内的素数。

思路:

1.素数就是大于1的,并且只能被1和自己本身整除的数叫素数。

2.那么只需要从2循环到10就可以了。

上代码:

package 初级;

import java.util.Scanner;

public class 判断素数 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入你要判断的数:");
        int num = input.nextInt();
        System.out.println(num+"是否为素数:"+judge(num));
        System.out.println("请输入输出多少以内的素数:");
        int len = input.nextInt();
        for(int i=0;i<len;i++){
            if(judge(i)){
                System.out.print(i+",");
            }
        }
    }
    private static boolean judge(int n){
        if(n<=3){
            return n>1;
        }
        for(int i=2;i<10;i++){
            if(n%i == 0 && n!=i){
                return false;
            }
        }
        return true;
    }
}

可能有人会问?为什么从2-10,为啥不是从2-n呢?

因为:如果一个数能够被其他数整除的话,那么肯定是可以被2-10以内的数整除的。所以只需要判断能否被2-10之间的数整除就行了,不需要再一直循环到n.这样的话,这个算法的时间复杂度就是O(1),是常数级。

我也查了网上的求多少以内素数的算法,可是没看到和我一样的,我个人觉得自己的逻辑是对的,不知道哪里有错误。希望大家指教。提点一二。谢谢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章