Cod sursa(job #1229766)
| Utilizator | Data | 18 septembrie 2014 03:01:40 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <cstdio>
using namespace std;
int n;
int main()
{
int cnt=1;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
bool check[n+1];
for(int i=1;i<=n;i++)
check[i]=true;
if(n<2)
printf("0");
else if(n==2)
printf("1");
else for(int i=3;i<=n;i+=2)
{
if(check[i]==true)
cnt++;
for(int j=i+i+i;j<=n;j+=(i << 1))
check[j]=false;
}
printf("%d\n",cnt);
return 0;
}
