Mai intai trebuie sa te autentifici.
Cod sursa(job #1333992)
Utilizator | Data | 3 februarie 2015 19:56:12 | |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <fstream>
using namespace std;
long eulerInd(long x)
{
long r=1, aux=0;
while(x%2==0)
{
x/=2;
++aux;
}
for(long j=1; j<aux; ++j)
r*=2;
aux=0;
for(long i=3; i<=x; i+=2)
{
while(x%i==0)
{
x/=i;
++aux;
}
if(aux) r*=i-1;
for(long j=1; j<aux; ++j)
r*=i;
aux=0;
}
return r;
}
int main()
{
ifstream in("fractii.in");
ofstream out("fractii.out");
long n;
long long r=1;
in>>n;
for(long i=2; i<=n; ++i)
r+=2*eulerInd(i);
out<<r<<'\n';
in.close(); out.close();
return 0;
}