Cod sursa(job #1289506)

Utilizator ghimpeleSeteanu Radu ghimpele Data 9 decembrie 2014 22:24:42
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#define NMax 1000010

const char IN[] = "fractii.in", OUT[] = "fractii.out";

int N;
long long v[NMax];

void ciur() {

	static bool b[NMax];

	for ( int i = 1; i <= N; ++ i ) v[i] = i;

	for ( int i = 2; i <= N; ++ i ) if ( ! b[i] ) {
		v[i] = i - 1;
		for ( int j = 2 * i; j <= N; j += i ) {
			b[j] = true;
            v[j] = v[j] / i * ( i - 1 );
		}
	}
}

int main() {

	freopen(IN, "r", stdin);
	freopen(OUT, "w", stdout);

	scanf("%d", &N);
	ciur();

	long long rez = 0;
	for ( int i = 2; i <= N; ++ i )
		rez += v[i];

	printf("%lld\n", 2 * rez + 1);

	return 0;
}