Cod sursa(job #854844)

Utilizator romykPrehari Romica romyk Data 14 ianuarie 2013 10:32:39
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <stdbool.h>
int i,j,n,i1,i2,m=3;
bool a[100000000];

int main()
{   freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    scanf("%i",&n);
    n=2000000;
    for(i=6;i<n;i+=6)
    { i1=i-1;
      i2=i+2;

           if(i1%5!=0&&a[i1]!=1)
            {
                a[i1]=1;
                m++;
                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(i2%5!=0&&a[i2]!=1)
            {
                a[i2]=1;
                m++;
                for(j=i2;j<=n;j+=i2*6)
                      a[j]=1;}
    }
    printf("%i",m);
    return 0;
}