三個開發組人數 a,b,c (0≤a,b,c<100)。核桃數需滿足:
1. 各組核桃數相同(前提是組有人)。
2. 組內能平分(整除人數)。
3. 滿足 1,2 的最小核桃數。
輸出該最小數。
#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b, c;
while (cin >> a >> b >> c) {
int ans = 1;
bool first = true;
for (int x : {a, b, c}) {
if (x > 0) {
if (first) { ans = x; first = false; }
else ans = lcm(ans, x);
}
}
cout << ans << '\n';
}
return 0;
}
簡單數論應用,注意 0 的特殊處理即可。