//UVA1393Highway
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
inline int Gcd(int a, int b) {
return b == 0 ? a : Gcd(b, a % b);
}
const int maxn = 300;
int gcd[maxn + 5][maxn + 5];
int main() {
for(int i = 1; i <= maxn; i++) {
for(int j = i; j <= maxn; j++) {
gcd[i][j] = gcd[j][i] = Gcd(i, j);
}
}
int n, m;
while(scanf("%d%d", &n, &m) == 2 && n) {
int ans = 0;
for(int a = 1; a <= m; a++) {
for(int b = 1; b <= n; b++) if(gcd[a][b] == 1) {
int sum = (m - a) * (n - b);
int c = max(0, m - 2 * a) * max(0, n - 2 * b);
ans += sum - c;
}
}
ans *= 2;
printf("%d\n", ans);
}
return 0;
}
/*
2 4
3 3
0 0
*/
UVA1393Highway
最新推荐文章于 2018-10-05 11:15:39 发布
