Pagini recente » Cod sursa (job #373089) | Cod sursa (job #820050) | Cod sursa (job #977068) | Cod sursa (job #2280216) | Cod sursa (job #2669175)
#include <iostream>
#include <fstream>
#define FIN "ciur.in"
#define FOUT "ciur.out"
typedef unsigned long ulong;
namespace Math {
namespace Eratosthenes {
ulong getCount(ulong n) {
bool primes[n+1];
ulong count = n - 1;
ulong i,j;
for (ulong i = 2; i < n + 1; ++i)
{
primes[ i ] = true;
}
for (i = 2; (i * i) <= n; ++i)
{
if( primes[ i ] ) {
j = 2;
while((i * j) <= n) {
ulong multiply = i * j;
if(primes[ multiply ]) count--;
primes[multiply] = false;
j++;
}
}
}
return count;
}
}
}
int main() {
std::ifstream fin(FIN);
std::ofstream fout(FOUT);
ulong n;
fin>>n;
fout<<Math::Eratosthenes::getCount(n);
//std::cout<<Math::Eratosthenes::getCount(n);
return(0);
}