经典的容斥原理
减去三点连线的就好了
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m;
int GCD(int m, int n)
{
while(m>0)
{
int c = n % m;
n = m;
m = c;
}
return n;
}
int main(){
// cout<<GCD(2,3);
cin>>n>>m;
ll ans=0;
n++;
m++;
// C(n*m,3)
ll temp=n*m;
ans=temp*(temp-1)*(temp-2)/6;
ans-=
n*(n-1)*(n-2)/6*m;
ans-=m*(m-1)*(m-2)/6*n;
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
ans-=(n-i)*(m-j)*(GCD(i,j)-1)*2;
}
}
cout<<ans;
}