👻
[c++] 競プロ典型90問 038 Large LCM(★3)
(問題ページ)
求めたlcm(変数ans)がオーバーフローしてないかどうか判断するために、
A, Bで割り切れるかどうかチェックするようにしました
if (ans % A == 0 && ans % B == 0 && ans <= 1000000000000000000) {
code
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
#include <math.h>
#include <numeric>
#include <algorithm>
long long calc_gcd(long long a, long long b) {
long long tmp;
while (b != 0) {
tmp = a;
a = b;
b = tmp % b;
}
return a;
}
long long calc_lcm(long long a, long long b){
return a / calc_gcd(a, b) * b;
}
int main() {
long long A, B;
cin >> A >> B;
long long ans = calc_lcm(A, B);
if (ans % A == 0 && ans % B == 0 && ans <= 1000000000000000000) {
printf("%lld\n", ans);
} else {
printf("Large\n");
}
}
Discussion