Pagini recente » Cod sursa (job #3190059) | Cod sursa (job #2586862)
#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=0;
bitset<2000003> prime;
prime.flip();
for(int i = 3; i*i <=n; i+=2 ){
if (prime.test(i)==true){
for(int j = i*i ; j<=n; j+= i<<1){
prime.set(j,false);
}
}
}
if(n%2 ==0) primes++;
for(int i=3 ;i <=n ; i+=2){
primes += (prime.test(i)==true)?1:0;
}
return primes;
}
int main ( )
{
ull n,primes=0;
in>>n;
out<<sieve(n);
return 0;
}