Pagini recente » Cod sursa (job #1896391) | Cod sursa (job #2041512) | Cod sursa (job #674499) | Cod sursa (job #220060) | Cod sursa (job #1951564)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int NMAX = 2000005;
int n;
bool is_prime[NMAX];
int primes[1420];
int primes_size;
int 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(int i=2; i<n;i++)
is_prime[i] = 1;
for (int i=2; i<n; i++)
{
if(is_prime[i])
{
primes[primes_size++] = i;
SPF[i] = i;
}
for (int 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;
}