Cod sursa(job #1019392)
Utilizator | Data | 31 octombrie 2013 00:15:03 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
//Ciurul lui Eratostene
#include <stdio.h>
#include <stdlib.h>
int A[2000000],B[2000000],n;
void vizitare(int A[],int n,int nr)
{
int i;
i=nr;
while(i<=n)
{
A[i]=1;
i+=nr;
}
}
int main()
{
int i;
int nr=2;
int k=1;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
vizitare(A,n,nr);
B[nr]=nr;
for(i=2;i<=n;i++){
if(A[i]==0)
{
vizitare(A,n,i);
B[i]=1;
k++;
}
}
printf("%d",k);
return 0;
}