问题描述
给定一个 W × H
的长方形,两边长度均为整数。小蓝想把它切割为很多个边长为整数的小正方形。
假设切割没有任何损耗,正方形的边长至少为 2 ,不允许出现余料,且要求所有正方形的大小相等。
请问最多能切割出多少个这样的正方形?
输入格式
输入一行,包含两个整数 W
和 H
,用一个空格分隔。
输出格式
输出一行,包含一个整数,表示最多可以切割出的正方形个数。
如果不存在满足要求的方案,输出 0
。
样例输入 1
in
10 20
样例输出 1
out
50
样例说明
可以切成 5 × 10 = 50
个边长为 2
的正方形。
样例输入 2
in
6 9
样例输出 2
out
6
样例输入 3
in
8 13
样例输出 3
out
0
评测用例规模与约定
- 对于 30% 的评测用例,
1 ≤ W, H ≤ 1000
- 对于 60% 的评测用例,
1 ≤ W, H ≤ 10^6
- 对于 100% 的评测用例,
1 ≤ W, H ≤ 10^9
c++代码
cpp
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll W, H;
int main() {
cin >> W >> H;
for (ll i = 2; i <= W; i++) {
if (W % i == 0 && H % i == 0) {
cout << (W / i) * (H / i);
return 0;
}
}
cout << 0;
return 0;
}//by wqs