Cod sursa(job #1318832)
| Utilizator | Data | 16 ianuarie 2015 13:45:19 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.83 kb |
#include<fstream>
using namespace std;
int n,s,q;
long long fi(long long n)
{
long long d,x,e,p;
d=2;
x=n;
p=n;
while(d*d<=x)
{
if(x%d==0)
{
e=0;
while(x%d==0)
{
e++;
x=x/d;
}
if(e>0)
{
p=(p/d)*(d-1);
}
}
d++;
}
if(x>1)
{
p=(p/x)*(x-1);
}
return p;
}
int main()
{
ifstream fin("fractii.in");
ofstream fout("fractii.out");
fin>>n;
if(n==0)
{
fout<<"0";
}
else
{
s=0;
for(q=2;q<=n;q++)
{
s=s+fi(q);
}
s=s*2+1;
fout<<s;
}
fin.close();
fout.close();
return 0;
}
