Cod sursa(job #1110497)
| Utilizator | Data | 18 februarie 2014 09:42:59 | |
|---|---|---|---|
| Problema | Fractii | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <stdio.h>
inline int gcd(int a,int b)
{
int r;
while(r=a%b)
{
a=b;
b=r;
}
return b;
}
inline int phi(int n)
{
int i=1,s=0;
for(i=1;i<=n;++i)
{
if(gcd(i,n)==1)
++s;
}
return s;
}
inline int farey(int n)
{
if(n==1)return 2;
else return farey(n-1)+phi(n);
}
int main()
{
int n;
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
printf("%d",2*farey(n)-3);
return 0;
}
