蒟蒻(拼音jǔ ruò,
学名:
Amorphophalms Konjac
),日本又称菎蒻,天南星科魔芋属,多年生宿根性块茎草本植物。原产印度、锡兰、马来半岛,中国西南地区栽种已有多年历史,自古便是中国古书中的药草之一。分布于越南、喜马拉雅山地至泰国以及中国大陆的甘肃、宁夏至江南各省、陕西等地,生长于海拔
310
米至
2,200
米的地区,多生长于林缘、疏林下以及溪谷两旁湿润地。蒟蒻常被制作成为果冻类的食品,最普遍是以荔枝作调味的荔枝蒟蒻。
有一大片矩形的蒟蒻地,分成了
M*N
块大小相同的矩形蒟蒻田,如图
一大
牛在最左上角,现在他要去最右下角。大牛它可什么都不会管,他会选择一条最短的直线路径(就是图中的红色线段),虽然有蒟蒻会被它无情地踩掉。
可怜的蒟蒻,
T . T
现在请你计算一下有多少块蒟蒻田会被大牛踩掉。如果大牛经过了某块蒟蒻田的内部某点,那么这块蒟蒻田就视为被大牛踩掉了(例如M=2,N=2时候就只有2块田被大牛踩掉)。
Input
输入文件有多行,每行对应一组测试数据,包含有两个整数,依次是M和N,1<=M,N<=1,000,000,000。
输入以
EOF
结束。
Output
对应于输入的每一组数据,用单独的一行输出其中被大牛踩掉的蒟蒻田块数。
Sample Input
6 7
Sample Output
12
解题思路:
代码如下:C/C++代码
#include<stdio.h>
//gcd函数:欧几里得算法求最大公约数
long int gcd(long int a,long int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int main()
{
long int c,m,n,k,sum;
while(scanf("%d%d",&m,&n)!=EOF)
{
if(m>n)
{
c=m;m=n;n=c;
}
c=gcd(n,m);//求m,n的最大公约数
printf("%ld\n",m+n-c);
}
return 0;
}