5/5 - (2 bình chọn)

Bài 30 Đếm Số Chia Hết Cho 3 Hoặc 5 Và Tính Tổng Các Số Chẵn Bằng Python

Giới Thiệu

  • Bài toán đếm số lượng các số chia hết cho 3 hoặc 5 và tính tổng các số chẵn trong khoảng từ m đến n là một bài toán hữu ích trong lập trình.
  • Nó có nhiều ứng dụng trong phân tích dữ liệu và tối ưu hóa thuật toán.
  • Bài viết này sẽ hướng dẫn cách giải quyết bài toán bằng Python một cách hiệu quả.

Ưu Đãi lớn thêm danh sách 10 bài tập python  rèn luyện kỹ năng và nâng cao tay nghề:

  1. Bài 26 – Tính Tổng Những Số Chia Hết Cho 3 và 5 bằng Python
  2. Bài 27: Kiểm tra số nguyên tố bằng Python (2 cách tối ưu)

  3. Bài 28: Tính Tổng Các Số Nguyên Từ m Đến n Bằng Python
  4. Bài 29: Đếm Số Chia Hết Cho 3 Từ m Đến n Bằng Python
  5. Bài 30 Đếm Số Chia Hết Cho 3 Hoặc 5 Và Tính Tổng Các Số Chẵn Bằng Python
  6. Bài 31: Đếm Số Nguyên Tố Trong Khoảng Từ m Đến n Bằng Python
  7. Bài 32 : In Các Số Nguyên Tố Từ m Đến n Bằng Python
  8. Bài 33: Tính Trung Bình Cộng Các Số Nguyên Tố Từ m Đến n Bằng Python
  9. Bài 34: Tìm Ước Chung Lớn Nhất (UCLN) của Hai Số Nguyên Dương a, b bằng Python
  10. Bài 35: Rút Gọn Phân Số Bằng Python

Cách Xác Định Số Chia Hết Cho 3 Hoặc 5

Một số nguyên x chia hết cho 3 hoặc 5 nếu:

Nghĩa là khi chia x cho 3 hoặc 5, phần dư bằng 0.

Viết Chương Trình Python

Dưới đây là chương trình Python để đếm số lượng số chia hết cho 3 hoặc 5 và tính tổng các số chẵn trong đoạn [m, n].

 

# Hàm đếm số lượng số chia hết cho 3 hoặc 5

def dem_so_chia_het_cho_3_hoac_5(m, n):
    count = 0
    for i in range(m, n + 1):
        if i % 3 == 0 or i % 5 == 0:
            count += 1
    return count
# Hàm tính tổng các số chẵn

def tinh_tong_so_chan(m, n):
    tong = 0
    for i in range(m, n + 1):
        if i % 2 == 0:
            tong += i
    return tong
# Nhập giá trị m và n từ người dùng
m = int(input("Nhập số nguyên m: "))
n = int(input("Nhập số nguyên n: "))
# Kiểm tra điều kiện m phải nhỏ hơn hoặc bằng n
if m > n:
    print("Giá trị m phải nhỏ hơn hoặc bằng n.")
else:
    print(f"Số lượng số chia hết cho 3 hoặc 5 từ {m} đến {n} là: {dem_so_chia_het_cho_3_hoac_5(m, n)}")
    print(f"Tổng các số chẵn từ {m} đến {n} là: {tinh_tong_so_chan(m, n)}")

 

Giải Thích Chương Trình

  • Hàm dem_so_chia_het_cho_3_hoac_5(m, n): Duyệt qua từng số từ m đến n, kiểm tra xem số đó có chia hết cho 3 hoặc 5 không, và đếm lại.
  • Hàm tinh_tong_so_chan(m, n): Duyệt qua từng số từ m đến n, kiểm tra số chẵn và tính tổng.
  • Nhập giá trị m và n: Nhận hai số nguyên từ người dùng.
  • Kiểm tra điều kiện m ≤ n: Đảm bảo khoảng hợp lệ trước khi tính toán.
  • Hiển thị kết quả: Xuất số lượng các số chia hết cho 3 hoặc 5 và tổng các số chẵn.

Cách Tối Ưu

Thay vì kiểm tra từng số, ta có thể tìm số lượng số chia hết cho 3 hoặc 5 trong đoạn [m, n] bằng công thức toán học:

 

# Hàm đếm số lượng số chia hết cho 3 hoặc 5 bằng công thức toán học

def dem_so_chia_het_cho_3_hoac_5_toan_hoc(m, n):
    so_3 = n // 3 - (m - 1) // 3
    so_5 = n // 5 - (m - 1) // 5
    so_15 = n // 15 - (m - 1) // 15  # Tránh đếm trùng
    return so_3 + so_5 - so_15
# Hàm tính tổng các số chẵn bằng công thức toán học
def tinh_tong_so_chan_toan_hoc(m, n):
    if m % 2 != 0:
        m += 1
    if n % 2 != 0:
        n -= 1
    so_luong = (n - m) // 2 + 1
    return (so_luong * (m + n)) // 2
# Nhập giá trị m và n từ người dùng

m = int(input("Nhập số nguyên m: "))
n = int(input("Nhập số nguyên n: "))
# Kiểm tra điều kiện

if m > n:
    print("Giá trị m phải nhỏ hơn hoặc bằng n.")
else:
    print(f"Số lượng số chia hết cho 3 hoặc 5 từ {m} đến {n} là: {dem_so_chia_het_cho_3_hoac_5_toan_hoc(m, n)}")
    print(f"Tổng các số chẵn từ {m} đến {n} là: {tinh_tong_so_chan_toan_hoc(m, n)}")

 

Giải Thích Cách Tối Ưu

  • Sử dụng công thức toán học để đếm số chia hết cho 3 hoặc 5: Tính toán trực tiếp số lượng phần tử chia hết, tránh sử dụng vòng lặp.
  • Sử dụng công thức tổng cấp số cộng cho số chẵn: Tính tổng mà không cần duyệt từng số, giúp tăng hiệu suất.
  • Độ phức tạp O(1): Chỉ thực hiện phép tính đơn giản, không cần vòng lặp.

Ứng Dụng

  • Xác định nhanh số lượng phần tử thỏa mãn điều kiện chia hết trong một khoảng.
  • Tối ưu hóa thuật toán xử lý dữ liệu lớn.
  • Ứng dụng trong thống kê, kiểm tra dữ liệu và lập trình tài chính.

Kết Luận

Bài toán đếm số lượng số chia hết cho 3 hoặc 5 và tính tổng các số chẵn từ m đến n có thể giải quyết bằng nhiều cách. Sử dụng vòng lặp giúp dễ hiểu nhưng tốn thời gian hơn, trong khi sử dụng công thức toán học giúp tối ưu hiệu suất đáng kể. Hy vọng bài viết này giúp bạn hiểu rõ hơn về cách triển khai thuật toán này trong Python!

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

 

Khóa học Python online từ cơ bản đến nâng cao

Vi Tính Tấn Dân

Mình rất đam mê về máy vi tính và máy in. Và mình đã đeo đuổi ước mơ và làm việc về máy vi tính mới đây mà đã 15 năm. Mình thích chia sẻ mọi kiến thức và kinh nghiệm mà mình có được cho tất cả các bạn ! Trong khi mình viết nếu có điều gì thiếu sót mong các bạn thông cảm cho mình nhé ! Mình Cám ơn trước !

Recent Posts

100 triệu là mức lương của lập trình Python vì sao?

100 triệu là mức lương của lập trình Python vì sao? 1. Vì sao Python…

4 ngày ago

This website uses cookies.