算法10 素数个数

2017-10-25  本文已影响0人  holmes000

题目:时间限制:每个测试用例 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;
}
上一篇 下一篇

猜你喜欢

热点阅读