95 Học Python – Đếm xem trong mảng có bao nhiêu số nguyên tố

Rate this post

Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để đếm số lượng số nguyên tố trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm kiểm tra số nguyên tố.
  2. Viết một hàm đếm số nguyên tố trong mảng bằng vòng lặp.
  3. Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def la_so_nguyen_to(n):

    if n < 2:

        return False

    for i in range(2, int(n ** 0.5) + 1):

        if n % i == 0:

            return False

    return True




def dem_so_nguyen_to(mang):

    dem = 0

    for so in mang:

        if la_so_nguyen_to(so):

            dem += 1

    return dem




mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]

print("Số lượng số nguyên tố trong mảng:", dem_so_nguyen_to(mang_so))

 

Cách tối ưu

 

def la_so_nguyen_to(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True
def dem_so_nguyen_to_toi_uu(mang):
    return sum(1 for so in mang if la_so_nguyen_to(so))
mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]
print("Số lượng số nguyên tố trong mảng:", dem_so_nguyen_to_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Dùng list comprehensionNgắn gọn, hiệu suất caoKhó hiểu hơn cho người mới

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng list comprehension để đếm số nguyên tố là một lựa chọn tốt hơn.

MỜI BẠN ĐẶT CÂU HỎI ? MÌNH SẼ GIẢI ĐÁP HẾT !