Cod sursa(job #427681)
Utilizator | Data | 28 martie 2010 12:37:24 | |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
int phi(int k)
{
int ret=1,div, nr;
for(div=2; div<=k; div++)
{
nr = 0;
while(k%div == 0)
{nr++;k/=div;}
if(nr)
ret*=(div-1)*powl(div,nr-1);
}
return ret;
}
int n,s,i;
int main()
{
in>>n;
for(i=1; i<=n; i++)
s+=2*phi(i);
out<<s-1;
return 0;
}