Cod sursa(job #1003036)
| Utilizator | Data | 29 septembrie 2013 17:39:25 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.68 kb |
#include<cstdio>
#include<cmath>
using namespace std;
int euler(int n)
{
int phi,f,p,lim;
phi=n;
lim=(int)sqrt((double)n);
f=2;
while(f<=lim && n>1)
{
p=0;
while(n%f==0)
{
p++;
n=n/f;
}
if(p>0)
phi=phi/f*(f-1);
f++;
}
if(n>1)
phi=phi/n*(n-1);
return phi;
}
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
int n,val,valt=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
val=euler(i);
valt=valt+val;
}
valt=valt*2-1;
printf("%d\n",valt);
return 0;
}
