Cod sursa(job #372493)

Utilizator loginLogin Iustin Anca login Data 10 decembrie 2009 16:07:18
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
# include <fstream>
using namespace std;
int n, p[1000002];
ofstream fout ("fractii.out");

void erat (int n)
{
	int i, j;
	p[1]=0;
	p[2]=0;
	for (i=3;i<=n;i++)
	{
		if (i%2==0)
			p[i]-=i/2-1;
		else
			p[i]=i;
	}
	for (j=3;j<=n;j+=1)
		if (p[j]>1)
		{
			p[j]=0;
			for (i=2;i*j<=n;i++)
				if (p[i*j]>1) p[i*j]=-1;
				else if (p[i*j]<0) p[i*j]-=i-1;
		}
		else
			for (i=2;i*j<=n;i++)
				p[i*j]-=i-1;
}

int calcul (int n)
{
	int a=1, i, r=1;
	for (i=2;i<=n;i++)	
	{
		r=a+2*(i-1+p[i]);
		a=r;
	}
	return r;
}

int main ()
{
	ifstream fin ("fractii.in");
	fin>>n;
	erat (n);
	fout<<calcul (n);
	return 0;
}