Cod sursa(job #569195)

Utilizator SmarandaMaria Pandele Smaranda Data 1 aprilie 2011 09:38:05
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#define NMAX 1000000
long phi[1000001];
long x[10001];
long s=0;
void read(long n)
{
	long i;
}

void write(long n)
{
	long i;
	for (i=2;i<=n;i++)
		s=s+phi[i];
	s=s*2;
	s++;
	printf("%ld\n",s);
}

void nr_ciudat (long n)
{
	long i , j;
	for (i=2;i<=n;i++)
		if (i==phi[i])
		{
			phi[i]=i-1;
			for (j=i+i;j<=n;j=j+i)
				phi[j]=phi[j]/i*(i-1);
		}
}

int main()
{
	long n,i;
	
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	
	scanf("%ld",&n);
	for (i=1;i<=n;i++)
		phi[i]=i;
	nr_ciudat(n);
	write(n);
	return 0;
}