Cod sursa(job #372885)

Utilizator loginLogin Iustin Anca login Data 11 decembrie 2009 22:30:28
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 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+=2)
		if (p[j]==j)
		{
			p[j]=0;
			for (i=2;i*j<=n;i++)
			{		
    			if (p[i*j]==i*j) 
    				p[i*j]=-(i-1);  
				else
					p[i*j]-=(i-1+p[i]);
				
			}/*
		for (int k=1;k<=n;k++)
			fout<<p[k]<<" ";
		fout<<endl;*/
	}
}

unsigned long long calcul (int n)
{
	unsigned long long a=1, r=1;
	int i;
	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;
}