Pagini recente » Cod sursa (job #942489) | Cod sursa (job #1221776) | Cod sursa (job #1272376) | Cod sursa (job #2597589) | Cod sursa (job #249516)
Cod sursa(job #249516)
#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");
vector<bool>::size_type cate=v.size();
out<<cate;
out.close();
}