Cod sursa(job #518895)

Utilizator SteffiSteffi Steffi Data 3 ianuarie 2011 14:30:56
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
long int i, j;
long long rez, n, v[1000000];
bool p[1000000], pt[1000000];
int main()
{
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	scanf("%lld",&n);
	for (i=2;i<=n/2;i++)
	{
		if (v[i]==0)
			p[i]=true;
		if (pt[i]==false)
		for (j=2;j<=n/i;j++)
		{
			if (j%i==0)
				pt[i*j]=true;
			if (v[i]==0)
				p[i*j]=p[i*j] xor true;
			rez=rez-v[i*j];
			if (p[i]==true)
				v[i*j]=v[i*j]+(j-1);//(v[i]+1);
				else
					v[i*j]=v[i*j]-(j-1);//(v[i]+1);
		    rez=rez+v[i*j];	
		}
	}		
	printf("%lld",n*n-2*rez-n+1);
	return 0;
}