Pagini recente » Cod sursa (job #2651519) | Cod sursa (job #682774) | Cod sursa (job #314899) | Cod sursa (job #3139095) | Cod sursa (job #2586925)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <utility>
#include <cstring>
#include <bitset>
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
#define ull long long int
bool isPrime(ull n)
{
for(int i = 2; i*i <= n; i++)
{
if (n%i==0)
{
return false;
}
}
return true;
}
ull solvA(ull n)
{
ull primes= 0;
for(int i = 2; i<=n; i++)
{
if (isPrime(i))
{
primes++;
}
}
return primes;
}
ull sieve(ull n){
ull primes=1;
bitset<2000003> prime;
prime.flip();
for(int i = 3; i*i <=n; i+=2 ){
if (prime[i]==1){
for(int j = i*i ; j<=n; j+= 2*i){
prime[j]=0;
}
}
}
for(int i=3 ;i <=n ; i+=2){
primes += (prime[i]==1)?1:0;
}
return primes;
}
int main ( )
{
ull n,primes=0;
in>>n;
out<<sieve(n);
return 0;
}