Pagini recente » Cod sursa (job #1219780) | Cod sursa (job #2203214) | Cod sursa (job #361466) | Profil UCV_CAMIN_COJOCARU_TOROPU | Cod sursa (job #2828612)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("fractii.in");
ofstream fo("fractii.out");
int totient(int x)
{
int p=1;
int copie=x;
if(x%2==0)
{
while(x%2==0)
{
p=p*2;
x/=2;
}
p/=2;
}
int d=3;
while(x!=1)
{
if(x%d==0)
{
while(x%d==0)
{
p=p*d;
x/=d;
}
p=p/d;
p=p*(d-1);
}
d+=2;
if(d*d>copie)
d=x;
}
return p;
}
int main()
{
int n;
fi>>n;
unsigned long long sum=0;
for(int i=n;i>1;i--)
sum=sum+2*totient(i);
sum++;
fo<<sum;
fi.close();
fo.close();
return 0;
}