Giới thiệu
Cho số nguyên n, tìm số chữ số 0 liên tiếp ở cuối của n! (giai thừa). Số lượng chữ số 0 bằng số cặp thừa số (2, 5) trong phân tích thừa số nguyên tố. Vì số lượng thừa số 2 luôn nhiều hơn 5, ta chỉ cần đếm thừa số 5.
Công thức
Số chữ số 0 = n/5 + n/25 + n/125 + ... (chia nguyên cho các lũy thừa của 5).
Ví dụ
n = 20 → 20/5 = 4, 20/25 = 0 → Kết quả = 4. (20! = 2432902008176640000)
Ví dụ triển khai (C++)
#include <iostream>
using namespace std;
int countTrailingZeros(int n) {
int count = 0;
for (int i = 5; n / i >= 1; i *= 5)
count += n / i;
return count;
}
int main() {
int n = 20;
cout << "So chu so 0 cuoi cung cua " << n << "! la: " << countTrailingZeros(n);
return 0;
}
Đầu vào
20
Đầu ra
So chu so 0 cuoi cung cua 20! la: 4