Cod sursa(job #130241)

Utilizator AndreyPAndrei Poenaru AndreyP Data 31 ianuarie 2008 17:39:18
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#define N 1000001
char c[N];
int b[90000];
int main()
{
	int i,j,k,x,t,n;
	unsigned long f=0,f1;
	c[0]=c[1]=1;
	for(i=4; i<N; i+=2)
		c[i]=1;
	for(i=3; i*i<N; i+=2)
	{
		if(!c[i])
			for(j=i+i+i; j<N; j+=i+i)
				c[j]=1;
	}
	b[1]=2;
	k=1;
	for(i=3; i<N; i+=2)
	{
		if(!c[i])
			b[++j]=i;
	}
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	scanf("%d",&x);
	for(i=2; i<=n; i++)
	{
		t=i;
		f1=i;
		for(j=1; (j<=k)&&(t); j++)
		{
			if(t%b[j]==0)
			{
				f1=f1*(1-1/b[j]);
				while(t%b[j]==0)
					t=t/b[j];
			}
		}
		f=f+f1;
	}
	f=2*f+1;
	printf("%lu\n",f);
	return 0;
}