Cod sursa(job #62694)

Utilizator programatorMartinas Bodgan programator Data 23 mai 2007 19:28:54
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
long  v[1000001],n,u[1000001];
void init(long &n)
	{
	FILE*f=fopen("fractii.in","r");
	fscanf(f,"%ld",&n);
	fclose(f);
	}

void eratostene()
	{
	long i,j;
	for(i=2;i<=1000000;i++) v[i]=i;

	for(i=2;i<=1000000;i++)
		if(u[i]==0)
			{
			j=2;
			v[i]--;
			while(i*j<=n)
				{

				u[i*j]=1;
				v[i*j]=v[i*j]-v[i*j]/i;
				j++;}
			}
	}
int main()
	{
	init(n);
	eratostene();
	FILE*g=fopen("fractii.out","w");
	long long sol=1,i;
	for(i=2;i<=n;i++)
		sol+=2*v[i];
	fprintf(g,"%lld",sol);
	fclose(g);
	return 0;}