题目描述:
给定一个数字n,求小于n的质数的个数.
Example 1:
Input:10
Output:4
其中[2,3,5,7]
解题思路:
这道题比较简单可以利用遍历法,判断是否为质数即可.
此外,可以根据艾拉托斯特尼筛法是非常常用的,判断一个整数是否是质数的方法.并且可以在判断一个整数n的时候,同时
判断所小于n的整数,因此非常适合这道题.其原理通俗易懂:从1到n遍历,假设当前遍历到m,则把所有小于n的,且是m的倍数
的整数标为和数.遍历完成后,没有被标为和的数字即为质数.
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
class Solution{
public:
int countPrimes(int n){
if(n<=2){
return 0;
}
int count=1,board=0;
bool flag;
for(auto i=3;i<n;i+=2){
board=sqrt(i),flag=true;
for(auto j=2;j<=board;j++){
if(i%j==0){
flag=false;
break;
}
}
if(flag){
count++;
}
}
return count;
}
int countprim