Cod sursa(job #751725)

Utilizator StefanLacheStefan Lache StefanLache Data 26 mai 2012 19:21:02
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
#include<stdlib.h>
int ciur[170],N;
void ciuruieste()
{
    int i,j;
    for(i=3;i<N;i+=2)               ///facem numai pe alea impare
        for(j=i+i;j<=N;j+=i)
            ciur[j]=1;
}
int main()
{
    int N,i,j,count=0;
    FILE *f=fopen("fractii.in","rt");
    FILE *g=fopen("fractii.out","wt");
    fscanf(f,"%i",&N);
    if(N==1)
    {
        fprintf(g,"1");
        exit(0);
    }
    if(N==2)
    {
        fprintf(g,"3");
        exit(0);
    }
    if(N==3)
    {
        fprintf(g,"7");
        exit(0);
    }
    if(N==4)
    {
        fprintf(g,"11");
        exit(0);
    }
    count+=2*N-1;                                ///fractiile 1/1,1/2,.....,1/N,N/1,..1
    int nrp=N/2,nri;
    if(N%2==0)
        nri=N/2-1;
        else nri=N/2;
    count+=nrp*nri*2;
    ciuruieste();
    for(i=3;i<N;i+=2)
        for(j=i+2;j<=N;j+=2)
            if(ciur[j]==0 || ciur[i]==0)
                count+=2;
    fprintf(g,"%i",count);
    return 0;
}