Cod sursa(job #855202)

Utilizator romykPrehari Romica romyk Data 14 ianuarie 2013 19:23:34
Problema Ciurul lui Eratosthenes Scor 90
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <stdbool.h>
int i,j,n,i1,i2,m=3,i22,i11;
bool a[2000010];
int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    scanf("%i",&n);
    for(i=6;i<n;i+=6)
    {
        i1=i-1;
        i2=i+1;

           if(!a[i1]&&i1%5)
            {
                m++;i11=i1*6;
                for(j=i1;j<=n;j+=i11)
                      a[j]=1;
                if(i1<n/i1)
                     for(j=i1*i1;j<=n;j+=i11)
                            a[j]=1;
            }
           if(!a[i2]&&i2%5)
            {
                m++;i22=i2*6;
                for(j=i2;j<=n;j+=i22)
                      a[j]=1;
            }
    }
    printf("%i",m);
    return 0;
}