本文共 975 字,大约阅读时间需要 3 分钟。
统计所有小于非负整数 n 的质数的数量。
示例 1:
输入:n = 10
输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:
输入:n = 0
输出:0示例 3:
输入:n = 1
输出:0提示:
0 <= n <= 5 * 106
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-primes 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路: 思前想后,还是只用最传统的思想去解决这道题目,首先编写一个函数对输入的数字进行判断,判断是否是质数,如果是返回true,不是返回false,质数的判断很简单,就是从1遍历到它的平方根,看看是否能够整除,不能就说明是质数,再在主函数里面循环遍历要求的范围,统计数目,代码如下:
class Solution { public:// 判断函数 bool judge(int n){ // 循环遍历判断是否是质数 for(int i = 2; i * i <= n; i ++){ if(n % i == 0){ return false; } } return true; } int countPrimes(int n) { int num = 0; // 注意这里从2开始遍历,默认0,1的范围内没有质数 for(int i = 2; i < n; i ++){ num += judge(i); } return num; }};/*作者:heroding链接:https://leetcode-cn.com/problems/count-primes/solution/po-su-de-zhi-shu-pan-duan-fang-fa-by-heroding/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/