Cod sursa(job #51931)

Utilizator znakeuJurba Andrei znakeu Data 17 aprilie 2007 11:05:55
Problema Fractii Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
char v[1000005];
void ciur(int n)
{
	int i,j;
	v[0]=1; v[1]=1;
	for (i=2; i<n/2+1; i++)
		for (j=2*i; j<=n; j+=i)
			v[j]=1;
}


int main()
{
	int i,j,n,s=0;
	long long p;
	
	FILE *in=fopen("fractii.in","r");
	fscanf(in,"%d",&n);
	fclose(in);
	ciur(n);
	
	for (i=2; i<=n; i++)
	{
		p=i;
		for (j=2; j<=i; j++)
			if (!v[j] && i%j==0)
				p*=(j-1);
		for (j=1; j<=i; j++)
			if (i%j==0 && !v[j])
				p/=j;
		s+=(int)p;
	}
	s*=2;
	s++;
	
	FILE *out=fopen("fractii.out","w");
	fprintf(out,"%d\n",s);
	fclose(out);
	
	return 0;
}