Cod sursa(job #783761)
| Utilizator | Data | 3 septembrie 2012 20:32:09 | |
|---|---|---|---|
| Problema | Fractii | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<stdio.h>
using namespace std;
int phi(int n){
int result=1;
if(!(n%2)){
n/=2;
while(!(n%2)){
n/=2;
result*=2;
}
}
for(int k=3;k*k<=n;k+=2){
if(!(n%k)){
n/=k;
result*=k-1;
while(!(n%k)){
n/=k;
result*=k;
}
}
}
if(n>1)
result*=n-1;
return result;
}
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
long int n,i,z=1;
scanf("%lu",&n);
for(i=2;i<=n;i++)
z=z+phi(i)*2;
printf("%u",z);
return 0;
}
