Bài tập Python 3: Kiểm tra số nguyên n có chia hết cho 3 không?
Bài tập Python 3: Kiểm tra số nguyên n có chia hết cho 3 không?

Tiếp nối chuỗi bài tập về Toán tử số học, hôm nay chúng ta sẽ giải quyết bài toán: “Nhập vào số nguyên n. Kiểm tra xem n có chia hết cho 3 hay không?”.

Nếu bạn đã làm bài tập “Kiểm tra Chẵn Lẻ” (chia hết cho 2), thì bài toán này hoàn toàn tương tự. Nó giúp bạn củng cố kiến thức về Toán tử Modulo (%) – một công cụ cực mạnh để xử lý các bài toán về chu kỳ và phép chia.

Bạn hãy tham khảo các khóa học

1. Phân tích thuật toán

Trong lập trình, để biết số A có chia hết cho số B hay không, ta kiểm tra phần dư của phép chia A cho B.

  • Nếu phần dư bằng 0 => Chia hết.

  • Nếu phần dư khác 0 => Không chia hết.

Áp dụng cho số 3:

  • Công thức: n % 3

  • Điều kiện chia hết: n % 3 == 0

Ví dụ minh họa:

  • Nhập 9: 9 div 3 = 3 (dư 0) => 9 chia hết cho 3.

  • Nhập 10: 10 div 3 = 3 (dư 1) => 10 không chia hết cho 3.

2. Code Python mẫu

Bài tập Python 3: Kiểm tra số nguyên n có chia hết cho 3 không?
Bài tập Python 3: Kiểm tra số nguyên n có chia hết cho 3 không?

Dưới đây là các cách viết code từ đơn giản đến chuyên nghiệp.

Cách 1: Cấu trúc If-Else cơ bản

Dành cho người mới bắt đầu để hiểu rõ luồng đi của dữ liệu.

# 1. Nhập số nguyên n
n = int(input("Nhập vào số nguyên n: "))
# 2. Kiểm tra phần dư khi chia cho 3
if n % 3 == 0:
    print(f"{n} chia hết cho 3.")
else:
    print(f"{n} KHÔNG chia hết cho 3.")

Cách 2: Code ngắn gọn

Sử dụng toán tử ba ngôi để viết tất cả trên 1 dòng.

n = int(input("Nhập n: "))
print("Chia hết cho 3" if n % 3 == 0 else "Không chia hết cho 3")

Cách 3: Code tối ưu (Xử lý lỗi nhập liệu)

Đây là cách viết chuẩn dùng trong các dự án thực tế để tránh chương trình bị lỗi khi người dùng nhập sai định dạng.

print("--- KIỂM TRA CHIA HẾT CHO 3 ---")
try:
    # Bước 1: Nhập liệu an toàn
    user_input = input("Vui lòng nhập một số nguyên: ")
    n = int(user_input)
    # Bước 2: Xử lý logic
    if n % 3 == 0:
        print(f"Kết quả: Số {n} CHIA HẾT cho 3.")
    else:
        du = n % 3
        print(f"Kết quả: Số {n} KHÔNG chia hết cho 3 (Dư {du}).")
except ValueError:
    # Bước 3: Báo lỗi nếu nhập chữ cái
    print("Lỗi: Dữ liệu không hợp lệ! Vui lòng chỉ nhập con số.")

3. Mở rộng: Quy tắc dấu hiệu chia hết cho 3

Bài tập Python 3: Kiểm tra số nguyên n có chia hết cho 3 không?
Bài tập Python 3: Kiểm tra số nguyên n có chia hết cho 3 không?

Trong toán học, ta có mẹo: “Số chia hết cho 3 là số có tổng các chữ số chia hết cho 3”.

Tuy nhiên, trong lập trình, việc tính tổng các chữ số phức tạp hơn và tốn tài nguyên máy tính hơn so với việc dùng toán tử %. Do đó, luôn ưu tiên dùng n % 3.

4. Câu hỏi thường gặp (FAQ)

Dưới đây là giải đáp cho những thắc mắc thường gặp nhất:

1. Số 0 có chia hết cho 3 không?

Có. Vì 0 div 3 = 0 (dư 0). Trong lập trình 0 % 3 == 0 trả về True. Vậy số 0 chia hết cho 3.

2. Số âm (ví dụ -9) có chia hết cho 3 không?

Có. Số nguyên âm vẫn tuân theo quy tắc chia hết. Ví dụ: $-9 \div 3 = -3$ (dư 0). Code Python sẽ xử lý đúng trường hợp này.

3. Tôi muốn kiểm tra chia hết cho 5, 7, 9 thì làm thế nào?

Rất đơn giản, bạn chỉ cần thay số 3 bằng số bạn muốn kiểm tra.

Ví dụ chia hết cho 5: if n % 5 == 0.

4. Tại sao tôi nhập số thực (ví dụ 6.0) lại báo lỗi hoặc không chạy?

Vì trong code mẫu chúng ta dùng int() để ép kiểu số nguyên. Nếu muốn xử lý số thực, bạn cần dùng float(). Tuy nhiên, khái niệm “chia hết” thường chỉ áp dụng chặt chẽ trong tập số nguyên.

5. Toán tử %/ khác nhau thế nào?

  • Toán tử / (Chia): Trả về kết quả phép chia. VD: 7 / 3 = 2.333.

  • Toán tử % (Modulo): Trả về phần dư. VD: 7 % 3 = 1. Để kiểm tra chia hết, bắt buộc phải dùng %.

6. if n % 3: (không có == 0) nghĩa là gì?

Trong Python, số 0 tương đương với False, các số khác 0 là True.

Nếu bạn viết if n % 3:, nghĩa là “Nếu phép chia có dư” (dư khác 0). Đây là kiểm tra KHÔNG chia hết. Hãy cẩn thận để không bị ngược logic!


Tổng kết:

Qua bài tập này, bạn đã thành thạo cách sử dụng toán tử Modulo %. Hãy nhớ rằng: Bất cứ khi nào đề bài có cụm từ “chia hết”, “bội số” hay “ước số”, hãy nghĩ ngay đến toán tử.

Bạn xem thêm: Bài tập Python 4: Tìm số lớn nhất trong 2 số a và b

 

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *