Rate this post

Bài 26: Kiểm Tra Số Nguyên n Có Phải Là Số Nguyên Tố Bằng Python

Giới Thiệu

Số nguyên tố là một số nguyên dương lớn hơn 1 và chỉ có đúng hai ước là 1 và chính nó. Bài toán kiểm tra số nguyên tố rất quan trọng trong lập trình và có nhiều ứng dụng trong mật mã, thuật toán tối ưu và lý thuyết số. Bài viết này sẽ hướng dẫn cách kiểm tra số nguyên tố bằng Python một cách tối ưu.

Cách Xác Định Số Nguyên Tố

Một số nguyên n được coi là số nguyên tố nếu thỏa mãn các điều kiện sau:

  • n lớn hơn 1.
  • n chỉ có hai ước là 1 và chính nó.

Viết Chương Trình Python

Chương trình dưới đây kiểm tra một số nguyên n có phải là số nguyên tố hay không.

 

 

# Nhập số nguyên từ người dùng

n = int(input(“Nhập số nguyên n: “))

if la_so_nguyen_to(n):

print(f”{n} là số nguyên tố.”)

else:

print(f”{n} không phải là số nguyên tố.”)

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

  • Kiểm tra n < 2: Nếu n nhỏ hơn 2, không phải số nguyên tố.
  • Duyệt từ 2 đến n-1: Kiểm tra nếu n chia hết cho bất kỳ số nào trong khoảng này, thì không phải số nguyên tố.
  • Trả về kết quả: Nếu không tìm thấy ước nào ngoài 1 và n, số đó là số nguyên tố.

Tối Ưu Chương Trình

Cách trên có độ phức tạp O(n), có thể được tối ưu thành O(√n) bằng cách chỉ duyệt đến √n:

 

# Hàm tối ưu kiểm tra số nguyên tố

def la_so_nguyen_to_toi_uu(n):

    if n < 2:

        return False

    if n in (2, 3):

        return True

    if n % 2 == 0 or n % 3 == 0:

        return False

    i = 5

    while i * i <= n:

        if n % i == 0 or n % (i + 2) == 0:

            return False

        i += 6

    return True

# Nhập số nguyên từ người dùng

n = int(input("Nhập số nguyên n: "))

if la_so_nguyen_to_toi_uu(n):

    print(f"{n} là số nguyên tố.")

else:

    print(f"{n} không phải là số nguyên tố.")

 

Giải Thích Tối Ưu

  • Bỏ qua số chẵn và số chia hết cho 3: Giúp loại trừ nhanh các trường hợp không phải số nguyên tố.
  • Chỉ kiểm tra đến √n: Vì nếu n có ước lớn hơn √n, thì nó sẽ có ước nhỏ hơn √n.
  • Sử dụng bước nhảy 6: Vì số nguyên tố lớn hơn 3 đều có dạng 6k ± 1, ta chỉ cần kiểm tra các số có dạng này.

Ứng Dụng

  • Kiểm tra tính nguyên tố của số trong mật mã học.
  • Ứng dụng trong thuật toán sàng lọc số nguyên tố.
  • Xây dựng thuật toán tối ưu hóa cho các bài toán về số học.

Kết Luận

Bài toán kiểm tra số nguyên tố có thể được giải quyết dễ dàng bằng Python. Sử dụng thuật toán tối ưu giúp giảm thời gian xử lý đáng kể, đặc biệt với các số lớn.

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 !

Published by
Vi Tính Tấn Dân

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.