\(\color{green}{solution}\)
容斥,任取3点后减去处于同一直线上的点即可
太懒了,不想预处理\(gcd\).
/**************************************************************
Problem: 3505
User: MiEcoku
Language: C++
Result: Accepted
Time:352 ms
Memory:1288 kb
****************************************************************/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define C_3(x) (1LL * (x) * (x-1) * (x-2) / 6)
int gcd(int x, int y) {return x ? gcd(y%x, x) : y;}
int n, m;
ll ans;
int main() {
scanf("%d%d", &n, &m);
++ n; ++ m;
// printf("%lld\n", C_3(n * m)); // de bug
ans = C_3(n * m) - C_3(n) * m - C_3(m) * n;
// printf("%lld\n", ans); // de bug
for ( register int i = 1; i < n; ++ i) {
for ( register int k = 1; k < m; ++ k) {
ans -= 2LL * (gcd(i, k) - 1) * (n - i) * (m - k);
}
}
printf("%lld\n", ans);
}