10018 - 演练队形(alignment)

在操场上同学们要排练行进方阵,同学们排成了m*n的长方形矩阵,每个同学都在整点上,现在老师想让所有处于同一条直线的同学们拿着一条丝带,以在上方能看到好看的图案,老师想确认它们需要购买多少条丝带。如果用数学语言,在坐标轴x-y上,所有的同学处在(0~n-1,0~m-1)的整点上,其中排在(1,2),(2,4)的小朋友在一条直线上,请问这些同学能够确认多少条直线

给出两个整数m和n,表示m*n个,输出能表示的最多直线数量,答案对109+7取余

输入

从文件alignment.in中读入数据 输入的第一行包含一个整数T,代表样例数量 每组测试数据包含三行 输入仅一行m,n,其中m表示行数,n表示列数

输出

输出到文件alignment.out中 输出仅一行ans表示能表示的最多直线数量,答案对109+7取余

样例

输入

2
3 3
2 3

输出

20
11

提示

对于2*3的长方形矩阵,能够确定的直线数量是11条,如下图所示

对于3*3的方阵,能够确定的直线数量是20条,如下图所示

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题