Cod sursa(job #57455)

Utilizator FlorianFlorian Marcu Florian Data 2 mai 2007 09:59:36
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 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<=n;i++) v[i]=i;

	for(i=2;i<=n;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 sol=1,i;
	for(i=2;i<=n;i++)
		sol+=2*v[i];
	fprintf(g,"%ld",sol);
	fclose(g);
	return 0;}