給定矩形磚尺寸 W × H,所有磚相同且不可切割,需拼成一個正方形,求所需最少磚塊數。
正方形邊長必須是 W 和 H 的公倍數,最小邊長為 LCM(W, H)。
所需磚數 = (LCM/W) * (LCM/H) = LCM² / (W*H)。
輸入: 2 3
LCM(2,3)=6
磚數 = (6/2)*(6/3) = 3*2 = 6 → 輸出 6
輸入: 1 2
LCM(1,2)=2
磚數 = (2/1)*(2/2) = 2*1 = 2 → 輸出 2
#include
using namespace std;
long long gcd(long long a, long long b) { return b?gcd(b,a%b):a; }
int main() {
long long W, H;
while (cin >> W >> H) {
if (W==0 && H==0) break;
long long lcm = W / gcd(W,H) * H;
cout << (lcm/W) * (lcm/H) << "\n";
}
return 0;
}