傳送門
題意:
給出a,b,L求lcm(a,b,c)=L
首先我們可以算出ab的lcm爲k,然後令L/k=r,從r開始枚舉c
那麼,當gcd(k,c)等於1時即找到c的最小值
AC代碼:
#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
cin>>t;
int k=1;
while(t--) {
long long a,b,c,L;
cin>>a>>b>>L;
printf("Case %d: ",k++);
c=a*b/(__gcd(a,b));
if(L%c) cout<<"impossible\n";
else {
long long d=L/c;
while(__gcd(d,c)!=1) {
long long m=__gcd(c,d);
c/=m;
d*=m;
}
cout<<d<<endl;
}
}
return 0;
}