C4-09 · Năm nhuận trong khoảng
Xem dạng PDFĐề
Cho hai năm a ≤ b. Đếm số năm nhuận trong đoạn [a; b] (tính cả a và b) theo lịch Gregory: năm nhuận là năm chia hết cho 400, hoặc chia hết cho 4 nhưng không chia hết cho 100 (Ví dụ 3.5, mục 3.3).
Dữ liệu vào
Một dòng chứa hai số nguyên a và b cách nhau một dấu cách.
Kết quả
Một dòng: số năm nhuận trong đoạn [a; b].
Ràng buộc
- 1 ≤ a ≤ b ≤ 100 000.
Ví dụ
Dữ liệu vào:
2000 2030
Kết quả:
8
Giải thích ví dụ
Các năm chia hết cho 4 trong đoạn [2000; 2030] là 2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028 — 8 năm. Năm 2000 chia hết cho 100 nhưng cũng chia hết cho 400 nên vẫn nhuận. Nếu quên quy tắc 400 sẽ ra 7.
Ví dụ này chưa phân biệt được lời giải chỉ xét "chia hết cho 4": thử thêm đoạn chứa năm 1900 hoặc 2100 (chia hết cho 4 và cho 100, nhưng không chia hết cho 400 → không nhuận).
Ghi chú
- Đoạn [a; b] gồm cả hai đầu: dùng
range(a, b + 1). - a và b nằm trên cùng một dòng: đọc bằng
input().split().
Nguồn trong sách: Bài C4-09, mục 4.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)