Cod sursa(job #97744)
#include<fstream>
using namespace std;
int euler(int x) //determina indicataorul lui Euler pt un numar x
{
int d=2,exp,p=x;
exp=0;
while(x%d==0)
x/=d,exp++;
if(exp)
p=p/d*(d-1);
d=3;
while(x!=1)
{
exp=0;
while(x%d==0)
x/=d,exp++;
if(exp)
p=p/d*(d-1);
d+=2;
if(d*d>x && x>1)
{
p=p/x*(x-1);
x=1;
}
}
return p;
}
int main()
{
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
fin>>n;
fin.close();
int i;
long long rez=1;
for(i=2;i<=n;i++)
rez+=2*euler(i);
fout<<rez;
fout.close();
return 0;
}