Cod sursa(job #1324531)

Utilizator dragos_vecerdeaVecerdea Dragos dragos_vecerdea Data 22 ianuarie 2015 15:16:19
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>

using namespace std;
FILE *fin ,*fout;
char v[1000001];
long long sum[1000001] ,sus[1000001] ,jos[1000001];
int main()
{
    long long n ,i ,j;
    fin = fopen("fractii.in" ,"r");
    fout = fopen("fractii.out" ,"w");
    fscanf(fin ,"%lld" ,&n);
    for(i=1;i<=n;i++)
    {
        sum[i]=i;
        sus[i]=1;
        jos[i]=1;
    }
    sum[1]=0;
    for(i=2;i<=n;i++)
    {
        if(v[i]==0)
        {
            sus[i]*=(i-1);
            jos[i]*=i;
            for(j=2*i;j<=n;j+=i)
            {
                v[j]=1;
                sus[j]*=(i-1);
                jos[j]*=i;
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        sum[i]=(sum[i]*sus[i])/jos[i];
    }
    for(i=2;i<=n;i++)
    {
        sum[i]=sum[i]+sum[i-1];
    }
    fprintf(fout ,"%lld" ,sum[n]*2+1);
    return 0;
}