2019.04.04
统计所有小于非负整数 n 的质数的数量。
示例:
输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
···
class Solution
{
public:
bool isprime(int x)
{
int i = 2;
while (x % i != 0 && ii <= x)
{
i++;
}
if (ii <= x)
{
return false;
}
return true;
}
int countPrimes(int n)
{
int count = 0;
for (int i = 2; i < n; i++)
{
if (isprime(i))
count++;
}
return count;
}
};
···
题解分析:
(1)定义一个判定是否为素数的函数(返回类型为bool型):
判定素数的算法:一个数从i=2开始去除,在ii<=x的循环类一直没有出现被整除的现象则判定这一个数为素数,将函数返回true,否则返回false(跳出循环判定的方法,看ii是否比x大,如果大了,返回false)
(2)定义一个计算从1-x范围类素数个数的函数(返回类型为int型),建立一个循环,从2开始,每一次都调用isprime函数,如果返回真个数加1,最后循环结束之后返回素数个数
网友评论