Given an integer n, return the number of prime numbers that are strictly less than n.
Input: n = 10
Output: 4
Explanation: There are 4 prime numbers less than 10, they are 2, 3, 5, 7.
Input: n = 0
Output: 0
Input: n = 1
Output: 0
#include <vector>
#include <iostream>
using namespace std;
class Solution
{
public:
int countPrimes(int n)
{
// Sieve Of Eratothons
// idx : 0 to n
if (n == 0 || n == 1)
return 0;
vector<bool> nums(n + 1, true);
for (int i = 2; i * i <= n; i++)
{
if (nums[i])
{
for (int j = i * i; j <= n; j += i)
{
nums[j] = false;
}
}
}
int count = 0;
for (int i = 2; i < n; i++)
{
if (nums[i])
{
count++;
}
}
return count;
}
};
#include <vector>
#include <iostream>
using namespace std;
class Solution
{
public:
int countPrimes(int n)
{
// Sieve Of Eratothons
// idx : 0 to n
if (n == 0 || n == 1)
return 0;
vector<bool> nums(n + 1, true);
for (int i = 2; i <= n; i++)
{
if (nums[i])
{
for (int j = i + i; j <= n; j += i)
{
nums[j] = false;
}
}
}
int count = 0;
for (int i = 2; i < n; i++)
{
if (nums[i])
{
count++;
}
}
return count;
}
};