Cod sursa(job #790775)

Utilizator ana.zetg wea tw ana.z Data 22 septembrie 2012 12:25:43
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
#define ll long long
using namespace std;
long long n,i,j,f,v[1000001],x,y,k,l,p,o,m,m1,m2,m3;
int main()
{
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	scanf("%lld",&n);
	x=1;
	for(i=2;i<=n;i++)
	{
		if(v[i]==0)
		{
			v[i]=i-1;
			for(j=i*i;j<=n;j=j+i)
				v[j]=i;
		}
		else
		{
			f=v[i];
			j=i;
			v[i]=f;
			v[i]--;
			j=j/f;
			while(j%f==0)
			{
				v[i]=v[i]*f;
				j=j/f;
			}
			if(j>1)
			v[i]=v[i]*v[j];
		}
		x=x+2*v[i];
	}
	if(x!=0)
	printf("%lld",x);
	return 0;
}