美文网首页
算法10 素数个数

算法10 素数个数

作者: holmes000 | 来源:发表于2017-10-25 11:16 被阅读0次

    题目:时间限制:每个测试用例 2 秒, 空间限制:内存 384 M

    输入为一个正整数, 不大于 100000

    请给出小于这个数字的素数有多少个.
    思路:先判断是否为素数(大于1的自然数,只能被自身和1整除)将给出的数循环除以小于它的数看模是否为0(先把数的开方求出来就可以减少比较次数)
    代码:

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int count = 0;
        for (int i=2;i<a;i++){
            if(getPrime(i)){
                count++;
            }
        }
        System.out.println(count);
    }
    
    static boolean getPrime(int num){
        for(int i=2;i<=Math.sqrt(num);i++){
            if(num%i == 0) {
               return false;
            }
        }
        return true;
    }

    相关文章

      网友评论

          本文标题:算法10 素数个数

          本文链接:https://www.haomeiwen.com/subject/ddfqpxtx.html