Cod sursa(job #241402)
Utilizator | Data | 9 ianuarie 2009 23:27:53 | |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.34 kb |
#include<stdio.h>
int main(){
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
long long n,i,j,fi,r,nr;
scanf("%d",&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("%d",r);
return 0;
}