Cod sursa(job #1666042)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 27 martie 2016 16:48:45
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <iostream>
#include <bitset>
#define nmax 1000000000
using namespace std;

int n;
inline long long getphi(int nr)
{
    long long sol=nr,mod=nr;
    for(long long i=2;i*i<=nr;i++)
        if(nr%i==0)
        {
            while(nr%i==0) nr/=i;
            sol=sol/i*(i-1)%mod;
        }
    if(nr!=1)
        sol=sol/nr*(nr-1)%mod;
    return sol;
}

int main()
{
    long long sol=0;
    freopen("fractii.in","r",stdin);
    freopen("fractii.out","w",stdout);
    scanf("%d",&n);
    for(int i=2;i<=n;i++)
        sol+=2*getphi(i);
    sol+=1;
    printf("%d\n",sol);
    fclose(stdin);
    fclose(stdout);
    return 0;
}