Cod sursa(job #1179419)

Utilizator VisanCosminVisan Tudor Cosmin VisanCosmin Data 28 aprilie 2014 18:07:12
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <stdio.h>
long long nr;
unsigned long v[100001],n,i,j,q,cop,fi,k;
bool mat[100001];
float ff;
int main()
{
    FILE *f1,*f2;
    f1=fopen("fractii.in","r");
    f2=fopen("fractii.out","w");
    fscanf(f1,"%lu",&n);
    for(i=1;i<=n;i++)mat[i]=1;
    for(i=2;i<=n;i++)
        if(mat[i])
        {
            q=i;
            while(n>=q)
            {
                q+=i;
                mat[q]=0;
            }
        }
    nr=1;
    for(i=2;i<=n;i++)
    {
        cop=i;k=0;
        if(mat[cop]==1)
        {
            cop=1;
            v[0]=i;
            k=1;
        }
        q=2;
        while(cop>1)
        {
            if(cop%q==0)
            {
                while(cop%q==0)cop/=q;
                v[k++]=q;
                q=1;
            }
            q++;
        }
        if(mat[i]==0)
        {
            ff=i;
            for(j=0;j<k;j++)
                ff*=((float)1-(1/(float)v[j]));
            fi=ff;
        }
        else
        {
            ff=fi=i-1;
        }
        nr=nr+fi*2;
    }
    fprintf(f2,"%lld",nr);
    return 0;
}