Cod sursa(job #1324601)

Utilizator GoldenLiar2Luca Stefan GoldenLiar2 Data 22 ianuarie 2015 16:10:06
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>

using namespace std;
char v[1000001];
long long sum[1000001] ,sus[1000001] ,jos[1000001];
int main()
{
    long long n ,i ,j;
    freopen("fractii.in" ,"r", stdin);
    freopen("fractii.out" ,"w",stdout);
    scanf("%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];
    }
    printf("%lld" ,sum[n]*2+1);
    return 0;
}