

Nhập vào hai số nguyên dương `A` và `B` (`A, B ≤ 10^9)`. Hãy tìm ƯCLN của `A!`và `B!`
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`\color{black}{#Jadess౨ৎ}`
$\rm(Python)$
a, b = map(int, input().split())
if a > b:
a, b = b, a
s = 1
for i in range(1, a + 1):
s *= i
print(s)
$\rm(C++)$
#include <bits/stdc++.h>
using namespace std;
int main() {
long long a, b, s = 1;
cin >> a >> b;
if (a > b) swap(a, b);
for (long long i = 1; i <= a; i++)
s *= i;
cout << s;
}
`\color{#1AD5F7}{꧁⋆⟡T}\color{#1AD5F7}{D}\color{#4DA6E6}{u}\color{#668EDD}{n}\color{#8077D5}{g}\color{#B28DFF}{\ }\color{#995FCD}{G}\color{#EA2F90}{M⟡⋆꧂}`
Hãy giúp mọi người biết câu trả lời này thế nào?
`**` Ý tưởng:
Ta cần tìm `UCLN` của `A!` và `B!`
Giả sử `A ≤ B`.
Khi đó:
`@` `A! = 1 × 2 × ... × A`
`@` `B! = 1 × 2 × ... × A × ... × B`
`⇒ A!` là ước của `B!`
`⇒ UCLN(A!, B!) = A!`
Tương tự, nếu `B < A` thì:
`UCLN(A!, B!) = B!`
Vậy:
`UCLN(A!, B!) = min(A, B)!`
Vì `A, B` có thể tới `10^9` nên giai thừa sẽ cực lớn. Các đề kiểu này thường yêu cầu in chính xác khi `min(A,B)` nhỏ hoặc có ràng buộc đặc biệt. Nếu đề chỉ như ảnh thì áp dụng trực tiếp.
`**` Code:
from math import factorial
a, b = map(int, input().split())
print(factorial(min(a, b)))
`**` Giải thích lệnh:
`-` `\text(factorial)` là hàm tính giai thừa trong thư viện `\text(math)` của Python
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
0
58
0
anh ơi giúp em bài này với ạ /cau-hoi/8361028
982
915
505
Mai 6h tối đoàn, tốI thiểu mỗi ng 5 câu. Ai 2k11, 2k8 hay bận việc riêng thì xin phản hồi ạ.
1396
915
1041
ak thif bn oiw mik 2k11 vs cae cbi thi ts r as
1396
915
1041
neu mik cay dc thi mik se cay aj neu ko dc thi bn thong carm nha
982
915
505
Ok ạ.