Cod sursa(job #90353)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 9 octombrie 2007 11:24:47
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
int n,i,s;
int euler(int x){
	int p,i,j,z;
    char b;
    z=0;
    p=x;
    if (x%2==0){
        p=p/2;
        z=z+1;
    }
    if (x==1)
		p=1;
    else if (x==2)
		 p=1;
    else if (x==3)
		 p=2;
    else if (x==4)
		 p=2;
    else if (x==5)
		 p=4;
	else {
		for (i=3;i<x/2+1;++i)
			if (x%i==0){
                z=z+1;
                j=1;
                b='t';
                while ((j<i-1)&&(b='t')){
                       j=j+1;
                       if (i%j==0)
						   b='f';
                }
                if (b=='t')
					p=p*(i-1)/i;
			}
		if (z==0)
			p=p*(x-1)/x;
	}
    return p;
}
int main(){
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<n+1;++i)
		s=s+euler(i)*2;
    printf("%d\n",s-1);
	return 0;
}