Pagini recente » Istoria paginii utilizator/ilcadragos | Istoria paginii runda/sim10_1 | Istoria paginii utilizator/daria_stamin | Cod sursa (job #544042) | Cod sursa (job #2023482)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
bool prim[1000005];
vector <int> pr;
ll phi(ll n)
{
ll x=n,i;
for(i=0;i*i<=n;i++)
if(!(n%pr[i]))
{
while(!(n%pr[i]))
n/=pr[i];
x=(x/pr[i])*(pr[i]-1);
}
if(n!=1) x=(x/n)*(n-1);
return x;
}
int main()
{
ll n,i,ans=1,j;
f>>n;
pr.push_back(2);
for(i=3;i<=n;i+=2)
if(!prim[i])
{
pr.push_back(i);
for(j=2*i;j<=n;j+=i)
prim[j]=true;
}
for(i=2;i<=n;i++)
ans+=(2*phi(i));
g<<ans;
return 0;
}