cpp-346Đọc toàn bộ đề miễn phí

Số chữ số 0 tận cùng của n!

Mỗi chữ số 0 ở cuối một tích được sinh ra bởi một cặp thừa số 2 và 5. Trong khai triển của

C++Cơ bản15 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

mathnumber-theoryfactorialentry-ramp

Kiến thức tiên quyết: cpp-basics, while loop.

Nội dung đề bài

Mô tả bài toán

Mỗi chữ số 0 ở cuối một tích được sinh ra bởi một cặp thừa số 2 và 5. Trong khai triển của n! số thừa số 2 luôn nhiều hơn số thừa số 5, nên số chữ số 0 tận cùng đúng bằng số thừa số 5 xuất hiện trong phân tích n!. Ta đếm được số đó mà không cần nhân ra giai thừa.

Yêu cầu

Cho số nguyên dương n, hãy in ra số chữ số 0 tận cùng của n! (tích 1 * 2 * ... * n).

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin và in kết quả ra stdout. In đúng một số nguyên trên một dòng duy nhất.

Input

  • Một dòng duy nhất chứa số nguyên dương n (1 <= n <= 1000000000).

Output

  • Một số nguyên duy nhất là số chữ số 0 tận cùng của n!.

Ràng buộc

  • 1 <= n <= 1000000000.
  • Không được nhân ra n! vì 1000000000! là số khổng lồ; hãy đếm thừa số 5.
  • Kết quả vừa với kiểu long long.
  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

5

Output

1

Ví dụ 2

Input

10

Output

2

Giải thích

Với dữ liệu vào:

10! = 3628800 có hai chữ số 0 ở cuối, nên kết quả là:

Với dữ liệu vào:

100! có 20 + 4 = 24 chữ số 0 ở cuối, nên kết quả là:

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Góp ý & báo lỗi bài tập

Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.

Nhóm Zalo