Pagini recente » Cod sursa (job #885845) | Cod sursa (job #2596912) | Cod sursa (job #2968698) | Cod sursa (job #460545) | Cod sursa (job #1010606)
#include <iostream>
#include <fstream>
std::ifstream fin("ciur.in");
std::ofstream fout("ciur.out");
long n, nr;
bool vec[2000001];
void citire()
{
fin>>n;
for(int i = 0; i < n; i+=2)
{
vec[i] = true;
}
}
bool isPrim(long p)
{
for(int i = 2; i*i <= p; i++)
{
if(p % i == 0)
{
return false;
}
}
return true;
}
void rezolvare()
{
nr++;
for(int i = 3; i < n; i++)
{
// std::cout<<i<<' '<<isPrim(i)<<'\n';
if(vec[i] == false)
{
if(isPrim(i))
{
nr++;
int j = i;
while(j < n)
{
vec[j] = true;
j += i;
}
}
}
}
fout<<nr<<'\n';
// std::cout<<'\n'<<nr<<'\n';
}
int main()
{
citire();
rezolvare();
return 0;
}