题目002 统计N以内的素数

素数:只能被1和自身整除的数,0、1除外

解法一:暴力算法

  直接从2开始遍历,判断是否能被2到自身之间的数整除

public int countPrimes(int n) {
    int ans = 0;
    for (int i = 2; i < n; ++i) {
        ans += isPrime(i) ? 1 : 0;
    }
    return ans;
}

//i如果能被x整除,则x/i肯定能被x整除,因此只需判断i和根号x之中较小的即可
public boolean isPrime(int x) {
    for (int i = 2;i * i <= x; ++i) {
        if (x % i == 0) {
            return false;
        }
    }
    return true;
}

 

posted @ 2022-03-01 09:01  星星之火可以燎源  阅读(22)  评论(0编辑  收藏  举报