Cod sursa(job #241460)
Utilizator | Data | 10 ianuarie 2009 05:51:22 | |
---|---|---|---|
Problema | Fractii | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.35 kb |
#include<stdio.h>
int main(){
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
long long n,m,i,j,fi,r,nr;
scanf("%lld",&n);
r=1;
for(i=2;i<=n;++i){
nr=i;fi=nr;
for(j=2;j*j<=nr;++j){
if(nr%j==0) fi=(fi*(j-1))/j;
while(nr%j==0) nr=nr/j;
}
if(nr>1) fi=(fi*(nr-1))/nr;
r=r+2*fi;
}
printf("%lld",r);
return 0;
}