#include <stdio.h>
int main() {
long m,n;
scanf("%ld %ld",&m,&n);
long j,k,temp,i;
if(m<n)
{
i=m;
m = n;
n = i;
}
long s = m*n;
j = m%n;
if(j == 0)
{
j = n;
k = s/j;
printf("%ld",j+k);
}
else
{
while(j != 0)
{
temp = n%j;
n = j;
j = temp;
}
j=n;
k = s/j;
printf("%ld",j+k);
}
return 0;
}
不记得最大公约数与最小公倍数的求法。刚开始没有先用s = m*n;直接用的m*n来表示,因为在辗转相除的过程中,m和n的值已经在悄无声息的发生变化,所以m*n的值也发生变化,会导致出错。另外用int类型的,数值太大时会出错。代码不够简洁,日后可以研究更为简洁的代码,学习别人的思路。



京公网安备 11010502036488号