Cod sursa(job #241461)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 10 ianuarie 2009 06:15:39
Problema Fractii Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.4 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("%lld",&n);
r=1;
for(i=2;i<=n;++i){
	nr=i;fi=nr;
	if(nr%2==0){
		fi=fi/2;
		while(nr%2==0) nr/=2;
		}
	for(j=3;j*j<=nr;j+=2)
		if(nr%j==0){
			fi=fi*(j-1)/j;
			while(nr%j==0) nr/=j;
			}
	if(nr>1) fi=fi*(nr-1)/nr;
	r=r+2*fi;
	}
printf("%lld",r);
return 0;
}