Cod sursa(job #339496)

Utilizator cotofanaCotofana Cristian cotofana Data 10 august 2009 02:02:02
Problema Mins Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#define MAXN 1000001

long long C, D, phi[MAXN], m, M, sol=0;

long long MIN(const long long &a, const long long &b) {
	return a<b?a:b;
}

long long MAX(const long long &a, const long long &b) {
	return a<b?b:a;
}

int main() {
	long long i, j;
	freopen("mins.in", "r", stdin);
	freopen("mins.out", "w", stdout);
	
	scanf("%lld %lld\n", &C, &D);
	--C, --D;
	m=MIN(C, D);
	M=MAX(C, D);
	
	for (i=1; i<=M; ++i) phi[i]=MIN(i-1, m);
	for (i=2; i<=m && 2*i<=M; ++i)
		for (j=2*i; j<=M; j+=i)
			phi[j]-=phi[i];
	
	sol=0;
	for (i=2; i<=M; ++i) sol+=phi[i];
	for	(i=2; i<=m; ++i) sol+=phi[i];
	++sol;
	
	printf("%lld\n", sol);
	
	return 0;
}