Pagini recente » Heil Donald Trump! | Diferente pentru utilizator/anna_bozianu intre reviziile 15 si 4 | Diferente pentru preoni-2008/clasament/runda-3/11-12 intre reviziile 4 si 2 | Istoria paginii utilizator/liviux | Cod sursa (job #249519)
Cod sursa(job #249519)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
void sieve(vector<bool> &nums, long long n)
{
nums.reserve(n);
nums.push_back(0);
for(long long i=1; i<n; i++) nums.push_back(1);
long long curr_prime=1;
while((curr_prime+1)*(curr_prime+1)-1<(n+1))
{
for(long long i=(curr_prime+1)*(curr_prime+1)-1; i<n; i++)
if((i+1)%(curr_prime+1)==0)
nums[i]=0;
do
{
curr_prime++;
}
while(!nums[curr_prime]);
}
}
int main(int argc, char** argv)
{
ifstream in("ciur.in");
long long n;
in>>n;
in.close();
vector<bool> v;
sieve(v, n);
ofstream out("ciur.out");
long long cate=v.size();
long long cateprime=0;
for(long long i=0; i<n; i++)
if(v[i]) cateprime++;
out<<cate;
out.close();
}