Cod sursa(job #339496)
#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;
}