Pagini recente » Cod sursa (job #953764) | Cod sursa (job #1738446) | Cod sursa (job #671666) | Cod sursa (job #2681087) | Cod sursa (job #1951552)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int NMAX = 2000005;
typedef long long LL;
int n;
bool is_prime[NMAX];
LL primes[NMAX/2];
int primes_size;
LL SPF[NMAX];
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
is_prime[0] = is_prime[1] = 0;
for(LL i=2; i<n;i++)
is_prime[i] = 1;
for (LL i=2; i<n; i++)
{
if(is_prime[i])
{
primes[primes_size++] = i;
SPF[i] = i;
}
for (LL j=0;j < primes_size && i*primes[j] < n && primes[j] <= SPF[i];j++)
{
is_prime[i*primes[j]] = 0;
SPF[i*primes[j]] = primes[j] ;
}
}
printf("%d\n",primes_size);
return 0;
}