Học Python - Bài 50 Tính trung bình các số nguyên tố trong mảng
DANH SÁCH TÓM TẮT:
Giới Thiệu
Trong bài viết này, chúng ta sẽ viết chương trình Python để tìm các số nguyên tố trong một mảng và tính tổng của chúng. Số nguyên tố là số lớn hơn 1 và chỉ chia hết cho 1 và chính nó.
Một số là nguyên tố nếu:
Chúng ta sẽ sử dụng hai cách để kiểm tra số nguyên tố:
Chương Trình Python
# Hàm kiểm tra số nguyên tố (Cách cơ bản)
def la_so_nguyen_to(so):
if so < 2:
return False
for i in range(2, int(so**0.5) + 1):
if so % i == 0:
return False
return True
# Hàm tìm các số nguyên tố trong mảng và tính tổng
def tim_va_tinh_tong_so_nguyen_to(mang):
danh_sach_nguyen_to = [so for so in mang if la_so_nguyen_to(so)]
tong = sum(danh_sach_nguyen_to)
return danh_sach_nguyen_to, tong
# Nhập số lượng phần tử của mảng
n = int(input("Nhập số phần tử của mảng: "))
mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]
# Tìm và tính tổng số nguyên tố
danh_sach_nguyen_to, tong = tim_va_tinh_tong_so_nguyen_to(mang)
print("Các số nguyên tố trong mảng:", danh_sach_nguyen_to)
print("Tổng các số nguyên tố trong mảng:", tong)
# Hàm Sàng Eratosthenes để tìm số nguyên tố nhanh hơn
def sang_eratosthenes(gioi_han):
la_so_nguyen_to = [True] * (gioi_han + 1)
la_so_nguyen_to[0], la_so_nguyen_to[1] = False, False
for i in range(2, int(gioi_han**0.5) + 1):
if la_so_nguyen_to[i]:
for j in range(i * i, gioi_han + 1, i):
la_so_nguyen_to[j] = False
return {x for x in range(gioi_han + 1) if la_so_nguyen_to[x]}
# Hàm tìm số nguyên tố và tính tổng sử dụng Sàng Eratosthenes
def tim_va_tinh_tong_so_nguyen_to_toi_uu(mang):
if not mang:
return [], 0
gioi_han = max(mang)
tap_nguyen_to = sang_eratosthenes(gioi_han)
danh_sach_nguyen_to = [so for so in mang if so in tap_nguyen_to]
tong = sum(danh_sach_nguyen_to)
return danh_sach_nguyen_to, tong
# Nhập số lượng phần tử của mảng
n = int(input("Nhập số phần tử của mảng: "))
mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]
# Tìm và tính tổng số nguyên tố
danh_sach_nguyen_to, tong = tim_va_tinh_tong_so_nguyen_to_toi_uu(mang)
print("Các số nguyên tố trong mảng:", danh_sach_nguyen_to)
print("Tổng các số nguyên tố trong mảng:", tong)
So Sánh Hai Cách
| Phương pháp | Độ phức tạp | Ưu điểm | Nhược điểm |
| Kiểm tra từng số | O(n√m) | Dễ hiểu, dễ triển khai | Chậm khi mảng có số lớn |
| Sàng Eratosthenes | O(m log log m) | Tốc độ nhanh hơn với nhiều số | Tốn bộ nhớ hơn |
Trong đó:
Ví Dụ Chạy Chương Trình
Nhập số phần tử của mảng: 6
Nhập phần tử thứ 1: 3
Nhập phần tử thứ 2: 7
Nhập phần tử thứ 3: 10
Nhập phần tử thứ 4: 13
Nhập phần tử thứ 5: 17
Nhập phần tử thứ 6: 20
Các số nguyên tố trong mảng: [3, 7, 13, 17]
Tổng các số nguyên tố trong mảng: 40
Kết Luận
Bài viết đã hướng dẫn cách tìm số nguyên tố trong mảng và tính tổng của chúng bằng hai cách:
Hy vọng bài viết hữu ích cho bạn!
Khóa học Python online từ cơ bản đến nâng cao
100 Đề Tổng Hợp Thi Tin Học Ứng Dụng Cơ Bản – Đại học Khoa…
⭐ Giới thiệu: Laptop lỗi ngay lúc đang gấp? Đừng hoảng! Laptop đang dùng ngon…
✅ Giới thiệu Bạn đang dùng PC thì đột nhiên đơ, chậm, xoay vòng mãi…
Mở bài – Khó khăn khi laptop gặp sự cố nhưng không thể mang ra…
Mở bài – Ổ cứng SSD quan trọng thế nào với dân đồ họa Đối…
Mở bài – Ổ cứng lỗi khởi động, máy không vào Windows Ổ cứng bị…
This website uses cookies.