Cod sursa(job #855685)

Utilizator romykPrehari Romica romyk Data 15 ianuarie 2013 15:00:21
Problema Ciurul lui Eratosthenes Scor 90
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
#include <stdbool.h>
#define MAXSIZE 20000000
long long i,j,n,i1,i2,m=2,i22,i11;
bool a[MAXSIZE];
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])
        {
            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])
              {
                m++;i22=i2*6;
                for(j=i2;j<=n;j+=i22)
                      a[j]=1;
    }}
    printf("%i",m);
    return 0;
}