妈的,这道题让我怀疑人生,最小公倍数这么水的题我居然错了。后来发现数据是很大的,是unsigned long long 类型的,把所有数据换了,通过率只有30%,一度崩溃,看见群里大佬都过了,也不好意思问。早上起来还想到这个问题,突然想到,我之前没加括号是以a*b/最大公倍数的方式计算,要是a*b溢出了不就错了,改成a*(b/最大公倍数).然后过了,真是坑爹。。。。
#include<bits/stdc++.h>
using namespace std;
unsigned long long digui(unsigned long long a,unsigned long long b)
{
return !(a%b) ? b : digui(b,a%b);
}
int main()
{
unsigned long long a,b;
while(cin>>a>>b)
cout<<a*b/(digui(a,b));
return 0;
}