Cod sursa(job #385186)
Utilizator | Data | 22 ianuarie 2010 10:55:48 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <stdio.h>
using namespace std;
int main()
{
FILE *fin,*fout;
fin=fopen("ciur.in","r");
fout=fopen("ciur.out","w");
long n,i,a[1000],m,k=0,p=0,x;
fscanf(fin,"%d",&n);
for(i=2;i<=n;i++)
a[i]=i;
m=2;
do{
k=k+1;
for(i=m+1;i<=n;i++)
if((a[i]%m==0)&&(a[i]!=0))
{a[i]=0;p=p+1;}
for(i=m+1;i<=n;i++)
if(a[i]!=0)
{
m=a[i];
break;
}
} while(k<=n-p);
x=0;
for(i=2;i<=n;i++)
if(a[i]!=0)
x++;
fprintf(fout,"%d ",x);
return 0;
}