07:39, 02/09/2021 Đếm số chữ số 0 liên tiếp tận cùng của n!
Đếm số chữ số 0 liên tiếp tận cùng của n!
Happy New Year
Đây là mt bài tp khá cơ bn v tư duy lp trình. Có nhiu cách để gii nó tuy nhiên ở đây tôi chỉ đề cp đến
phương pháp ti ưu nht.
I) Số số không tận cùng là gì ?
đây nó có nghĩa là bn đang đi tìm s s10 xut hin trong tích ca số đó hay nói cách khác là tìm (2 . 5) trong tích
ca n!. Vy mt cách cơ bn thì bn ch cn đếm s lượng s hai và s lượng s 5 ri sau đó chn s nh hơn.
vd: 10! = 1.2.3.4.5.6.7.8.9.10 = 1.2.3.2.2.5.2.3.7.2.2.2.9.2.5
s lượng s 5: 2 ;
s lượng s 2: 8;
=> Vy chn s 2 ( ở đây 2 là s lượng s 5). => có 2 s không.
Kim tra kết qu: 10! = 3628800 (có 2 s không).
Tuy nhiên, có th d dàng nhn thy rng s s 2 trong tích ca n! luôn ln hơn s s 5. Tht vy, bi trong khong
t 1 -> n có khong n/2 s 2 (bi mi s chn đều cha 2 trong tích (chưa kể đến nhng s là lũy tha ca 2 như
4,8,..). Còn vi s 5 thì ch nhng s có tn cùng là 0, 5 thì mi cha 5 trong tích.
vd: n=10 khi phân tích ra thành tha s nguyên t thì có 8 (có s chênh lch tương đối so vi n/2) s 2 trong khi
ch có 2 s 5.
Vy nên s s 5 trong tích ca n! luôn nh hơn s s 2 do đó ch cn tìm s ln xut hin ca 5 trong tích ca n!.
II) Giải quyết vấn đề đặt ra:
Đến đây bn đã biết rng ch cn đếm s s 5 trong tích ca n!, ly mt ví d: 15! có 3 s 5 trong tích => có 3 s
không tn cùng ca n!.
Vậy đếm số số 5 đó như thế nào???
Như đã đề cp trên hay theo kiến thc đã hc bc tiu hc thì nhng s chia hết cho 5 (có 5 trong tích) thì đều
+7 •••
tn cùng bi các s 0 hoc 5 mà nhng s chia hết cho 5 s cách đều nhau 5 đơn v:
07:39, 02/09/2021
Vy s không đó ở đâu???
Hành trình đi tìm số 0 bị thiếu:
Trước hết ta cần phải hiểu rõ tại sao lại thiếu mất một giá trị:
Khi ta lấy n/5 chính ta đang đếm các số chia hết cho 5. Tuy nhiên số chia hết cho 5 cũng số this, số that
cũng có các số chứa 2, 3, 4, ... số 5 trong tích: 25, 50, 75, 125, 3125, ... Nghĩa là đối với các số này ta không chỉ
lấy được 1 số 5 mà còn có thể là 2, 3, 4 số. Do đó ta cần phải định nghĩa lại:
n/5
không còn là có bao nhiêu số 5 trong tích nữa mà là số lượng số có chứa ít nhất một số 5 trong
tích.
Vậy theo những gì đã nói ở trên thì ta lại phải tiếp tục tìm các số có chứa ít nhất 2, 3, 4, ... số 5 trong tích. vd:
25 = 5 5 => Có 2 số 5 trong tích.
Tìm kiếm trên
Đăng nhp/Đăng ký
Vậy ta lại tiếp tục tìm các số chia hết cho 5. Giống như trên ta lại sử dụng công thức n/25. Cứ tiếp tục như
vậy vi
125, 625, các lũy thừa của 5.
Như vậy, một cách tổng quát, ta có:
Theo công thức thì 25/5 = 5
nghĩa là có 5 số
0
Tuy nhiên, 25! = 15511210043330985984000000
không.
25! = 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25
Quy Bui Ngoc
Ta hoàn toàn có thể tính được số lượng số chia hết cho 5 trong khoảng từ 1 -> n bằngphéptoán
.com
n/5. Phải chăng
như thế là đủ??? Cùng đến với một ví
dụ:
5, 10, 15, 20, 25 => Đều chia hết cho 5.
tận cùng bởi các số 0 hoặc 5 mà những số chia hết cho 5 sẽ cách đều nhau 5 đơn vị:
(có 6 số không) => Kết quả tính của chúng ta thiếu mất một số
Đếm số chữ số 0 liên tiếp tận cùng của n!
n
5
+
5
n
2
+ ... +
5
n
k
Code trên C++:
+7
2/4

Preview text:

07:39, 02/09/2021
Đếm số chữ số 0 liên tiếp tận cùng của n!
Đếm số chữ số 0 liên tiếp tận cùng của n! Happy New Year
Đây là mt bài tp khá cơ bn v tư duy lp trình. Có nhiu cách để gii nó tuy nhiên ở đây tôi chỉ đề cp đến
phương pháp ti ưu nht.
I) Số số không tận cùng là gì ?
Ở đây nó có nghĩa là bn đang đi tìm s s10 xut hin trong tích ca số đó hay nói cách khác là tìm (2 . 5) trong tích
ca n!. Vy mt cách cơ bn thì bn ch cn đếm s lượng s hai và s lượng s 5 ri sau đó chn s nh hơn.
vd: 10! = 1.2.3.4.5.6.7.8.9.10 = 1.2.3.2.2.5.2.3.7.2.2.2.9.2.5
s lượng s 5: 2 ;
s lượng s 2: 8;
=> Vy chn s 2 ( ở đây 2 là s lượng s 5). => có 2 s không.
Kim tra kết qu: 10! = 3628800 (có 2 s không).
Tuy nhiên, có th d dàng nhn thy rng s s 2 trong tích ca n! luôn ln hơn s s 5. Tht vy, bi trong khong
t 1 -> n có khong n/2 s 2 (bi mi s chn đều cha 2 trong tích (chưa kể đến nhng s là lũy tha ca 2 như
4,8,..). Còn vi s 5 thì ch nhng s có tn cùng là 0, 5 thì mi cha 5 trong tích.
vd: n=10 khi phân tích ra thành tha s nguyên t thì có 8 (có s chênh lch tương đối so vi n/2) s 2 trong khi
ch có 2 s 5.
Vy nên s s 5 trong tích ca n! luôn nh hơn s s 2 do đó ch cn tìm s ln xut hin ca 5 trong tích ca n!.
II) Giải quyết vấn đề đặt ra:
Đến đây bn đã biết rng ch cn đếm s s 5 trong tích ca n!, ly mt ví d: 15! có 3 s 5 trong tích => có 3 s
không tn cùng ca n!.
Vậy đếm số số 5 đó như thế nào???
Như đã đề cp trên hay theo kiến thc đã hc bc tiu hc thì nhng s chia hết cho 5 (có 5 trong tích) thì đều +7 ••• •
tn cùng bi các s 0 hoc 5 mà nhng s chia hết cho 5 s cách đều nhau 5 đơn v:
Đếm số chữ số 0 liên tiếp tận cùng của n!
tận cùng bởi các số 0 hoặc 5 mà những số chia hết cho 5 sẽ cách đều nhau 5 đơn vị: 07:39, 02/09/2021
5, 10, 15, 20, 25 => Đều chia hết cho 5. Quy Bui Ngoc
Ta hoàn toàn có thể tính được số lượng số chia hết cho 5 trong khoảng từ 1 -> n bằngphéptoán.com n/5. Phải chăng
như thế là đủ??? Cùng đến với một ví
dụ:
25! = 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25
Theo công thức thì 25/5 = 5 nghĩa là có 5 số 0
Tuy nhiên, 25! = 15511210043330985984000000 (có 6 số không) => Kết quả tính của chúng ta thiếu mất một số không.
Vy s không đó ở đâu???
Hành trình đi tìm số 0 bị thiếu:
Trước hết ta cần phải hiểu rõ tại sao lại thiếu mất một giá trị:
Khi ta lấy n/5 chính là ta đang đếm các số chia hết cho 5. Tuy nhiên số chia hết cho 5 cũng có số this, số that
cũng có các số chứa 2, 3, 4, ... số 5 trong tích: 25, 50, 75, 125, 3125, ... Nghĩa là đối với các số này ta không chỉ
lấy được 1 số 5 mà còn có thể là 2, 3, 4 số. Do đó ta cần phải định nghĩa lại:

n/5 không còn là có bao nhiêu số 5 trong tích nữa mà là số lượng số có chứa ít nhất một số 5 trong tích.
Vậy theo những gì đã nói ở trên thì ta lại phải tiếp tục tìm các số có chứa ít nhất 2, 3, 4, ... số 5 trong tích. vd:
25 = 5 ∗ 5 => Có 2 số 5 trong tích.

Tìm kiếm trên
Đăng nhp/Đăng ký
Vậy ta lại tiếp tục tìm các số chia hết cho 5. Giống như trên ta lại sử dụng công thức n/25. Cứ tiếp tục như vậy với
125, 625, các lũy thừa của 5.
Như vậy, một cách tổng quát, ta có:
n n n 5 + 5 2 + ... + 5 k Code trên C++: +7 2/4