Cod sursa(job #489917)

Utilizator JulotMMihnea M. JulotM Data 4 octombrie 2010 01:48:03
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include "stdio.h"
#include "malloc.h"

using namespace std;

int main()
{
    int *v,k(0),aux[4],n,i,ok;

    FILE* f=fopen("ciur.in","r");
    FILE* g=fopen("ciur.out","w");

    fscanf(f,"%i",&n);

    v=(int *)malloc(sizeof(int)*n);

    aux[0]=2;
    aux[1]=3;
    aux[2]=5;
    aux[3]=7;

    for(i=2;i<=n;i++)
    {
        v[k]=i;
        k++;
    }

    i=0;
    while(i<k)
    {
        ok=0;
        for(int m=0;m<4 && ok==0;m++)
            if(v[i]%aux[m]==0 && v[i]!=aux[m])
                ok=1;

        if(ok==1)
        {
            for(int j=i;j<k-1;j++)
                v[j]=v[j+1];
            k--;
        }
        else
            i++;

    }

    fprintf(g,"%i",k);

    fclose(f);
    fclose(g);


    return 0;
}