Cod sursa(job #854967)

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

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