Cod sursa(job #1335006)

Utilizator PikachuPikachu Pikachu Data 4 februarie 2015 20:54:38
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <cstdio>

using namespace std;

const int NMAX = 1000000;

long long c[NMAX + 10];

void ciur() {
	for(int i = 2; i <= NMAX; ++ i) {
		c[i] = i;
	}
	for(int i = 2; i <= NMAX; ++ i) {
		if(c[i] == i) {
			for(long long j = i + i; j <= NMAX; j += i) {
				c[j] = c[j] / i * (i - 1);
			}
			-- c[i];
		}
	}
}

int main() {
	freopen("fractii.in", "r", stdin);
	freopen("fractii.out", "w", stdout);

	ciur();

	int n;
	long long s = 1;
	scanf("%d", &n);
	for(int i = 2; i <= n; ++ i) {
		s += 2 * c[i];
	}

	printf("%lld\n", s);

	return 0;
}