#include<cstdio>
#include<cstring>
using namespace std;
int d[360][360],n,m;
int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
void init()
{
for(int i=1;i<=300;i++)
for(int j=1;j<=300;j++)
{
d[j][i]=d[i][j]=gcd(i,j);
}
}
int main()
{
init();
while(~scanf("%d%d",&n,&m)&&(n+m))
{
int res=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(d[i][j]>1)
continue;
res+=(n-i)*(m-j);
if(n-2*i>0&&m-2*j>0)
res-=(n-2*i)*(m-2*j);
}
printf("%d\n",res*2);
}
}
LA 3720 Highway n x m的点阵 有多少条直线穿过至少2个点
最新推荐文章于 2018-08-10 16:41:24 发布