Cod sursa(job #481292)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 31 august 2010 10:27:05
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

int N, CE[1<<20];
long long F;

void c_ciur_e () {
	int i, j;
	for (i=2; i<=N; ++i)
		if ( !CE[i] ) {
			CE[ ++CE[0] ] = i;
			for (j=i+i; j<=N; j+=i)
				CE[j] = 1;		
		}	
}

void parc () {
	int i, j, x;
	F = N;
	for (i=2; i<=N; ++i) {
		F += N;
		x = i;
		
		for (j=1; x!=1; ++j)
			if ( !(x%CE[j]) ) {
				F -= N/CE[j];
				while ( !(x%CE[j]) )
					x /= CE[j];
			}
	}
}

int main () {
	freopen ("fractii.in", "r", stdin);
	freopen ("fractii.out", "w", stdout);
	
	scanf ("%d", &N);
	
	c_ciur_e ();
	parc ();
	
	printf ("%lld", F);
	
	return 0;
}