Thẻ: Tìm số nguyên to trong list Python

36 Học Python – In ra k số nguyên tố đầu tiên mới nhất

Bài 36: In ra k số nguyên tố đầu tiên bằng Python

Giới Thiệu

Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ chia hết cho 1 và chính nó. Trong bài viết này, chúng ta sẽ viết một chương trình Python để in ra k số nguyên tố đầu tiên.

Ư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 31: Đếm Số Nguyên Tố Trong Khoảng Từ m Đến n Bằng Python
  2. Bài 32 : In Các Số Nguyên Tố Từ m Đến n Bằng Python
  3. Bài 33: Tính Trung Bình Cộng Các Số Nguyên Tố Từ m Đến n Bằng Python
  4. 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
  5. Bài 35: Rút Gọn Phân Số Bằng Python
  6. Bài 36: In ra k số nguyên tố đầu tiên bằng Python
  7. Bài 37: Kiểm Tra Số Chính Phương Bằng Python
  8. Bài 38: In ra k số chính phương đầu tiên bằng Python
  9. Bài 39: Tính tổng các phần tử trong mảng bằng Python
  10. Bài 40: Đếm số dương trong mảng bằng Python?

Phương Pháp

  1. Kiểm tra số nguyên tố: Dùng thuật toán kiểm tra xem một số có phải là số nguyên tố hay không.
  2. Tìm k số nguyên tố đầu tiên: Dùng vòng lặp để tìm k số nguyên tố và in ra.

Viết Chương Trình Python

 

# Hàm kiểm tra một số có phải là số nguyên tố không
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
# Hàm tìm k số nguyên tố đầu tiên
def tim_k_so_nguyen_to(k):
    so_dem = 0  # Đếm số nguyên tố đã tìm được
    so_hien_tai = 2  # Bắt đầu từ số nguyên tố nhỏ nhất
    danh_sach_nt = []
    while so_dem < k:
        if la_so_nguyen_to(so_hien_tai):
            danh_sach_nt.append(so_hien_tai)
            so_dem += 1
        so_hien_tai += 1
    return danh_sach_nt
# Nhập số lượng số nguyên tố cần tìm
k = int(input("Nhập số k: "))
# Kiểm tra điều kiện đầu vào
if k <= 0:
    print("Vui lòng nhập một số nguyên dương.")
else:
    print(f"{k} số nguyên tố đầu tiên là: {tim_k_so_nguyen_to(k)}")

 

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

  • Hàm la_so_nguyen_to(n): Kiểm tra xem n có phải là số nguyên tố không.
  • Hàm tim_k_so_nguyen_to(k): Dùng vòng lặp để tìm k số nguyên tố đầu tiên.
  • Nhập dữ liệu: Người dùng nhập số k.
  • Kiểm tra điều kiện: Nếu k ≤ 0, thông báo lỗi.
  • Xuất kết quả: In danh sách k số nguyên tố đầu tiên.

Ứng Dụng

  • Sinh danh sách số nguyên tố để dùng trong mật mã học.
  • Xây dựng bài toán liên quan đến số học.
  • Ứng dụng trong xử lý thuật toán tối ưu.

Kết Luận

Chương trình trên giúp tìm k số nguyên tố đầu tiên một cách hiệu quả. Việc sử dụng thuật toán kiểm tra số nguyên tố tối ưu giúp chương trình chạy nhanh hơn. Hãy thử nghiệm với các giá trị khác nhau của k để kiểm chứng!

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

 

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

31 Học Python – Đếm số nguyên tố từ m đến n mới nhất 2025

Bài 31: Đếm Số Nguyên Tố Trong Khoảng Từ m Đến n Bằng Python

Giới Thiệu

Bài toán đếm số lượng số nguyên tố trong một khoảng [m, n] là một bài toán phổ biến trong lập trình. Số nguyên tố là số tự nhiên lớn hơn 1, chỉ chia hết cho 1 và chính nó. Bài viết này sẽ hướng dẫn cách giải quyết bài toán này 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ố Nguyên Tố

Một số x là số nguyên tố nếu:

  1. x > 1.
  2. Không tồn tại số d nào (2 ≤ d ≤ sqrt(x)) mà x % d == 0.

Viết Chương Trình Python

Dưới đây là chương trình Python để đếm số lượng số nguyên tố trong đoạn [m, n].

 

import math
# Hàm kiểm tra số nguyên tố
def la_so_nguyen_to(x):
    if x < 2:
        return False
    for i in range(2, int(math.sqrt(x)) + 1):
        if x % i == 0:
            return False
    return True
# Hàm đếm số nguyên tố trong đoạn [m, n]

def dem_so_nguyen_to(m, n):
    count = 0
    for i in range(m, n + 1):
        if la_so_nguyen_to(i):
            count += 1
    return count
# 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ố nguyên tố từ {m} đến {n} là: {dem_so_nguyen_to(m, n)}")

 

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

  • Hàm la_so_nguyen_to(x): Kiểm tra số x có phải số nguyên tố không bằng cách kiểm tra ước số từ 2 đến sqrt(x).
  • Hàm dem_so_nguyen_to(m, n): Duyệt qua từng số từ m đến n, đếm số nguyên tố.
  • 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 số nguyên tố tìm được.

Cách Tối Ưu Bằng Sàng Eratosthenes

Một cách tối ưu hơn là sử dụng thuật toán Sàng Eratosthenes để tìm tất cả số nguyên tố trong khoảng [m, n] nhanh hơn.

 

# Hàm sử dụng Sàng Eratosthenes để tìm số nguyên tố

def sang_eratosthenes(n):

    is_prime = [True] * (n + 1)

    is_prime[0], is_prime[1] = False, False

    for i in range(2, int(math.sqrt(n)) + 1):

        if is_prime[i]:

            for j in range(i * i, n + 1, i):

                is_prime[j] = False

    return is_prime
# Hàm đếm số nguyên tố từ m đến n
def dem_so_nguyen_to_sang(m, n):
    primes = sang_eratosthenes(n)
    return sum(1 for i in range(m, n + 1) if primes[i])
# 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ố nguyên tố từ {m} đến {n} là: {dem_so_nguyen_to_sang(m, n)}")

 

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

  • Sàng Eratosthenes: Tạo một danh sách đánh dấu các số nguyên tố, sau đó chỉ cần đếm số nguyên tố trong đoạn [m, n].
  • Độ phức tạp O(n log log n): Nhanh hơn so với kiểm tra từng số riêng lẻ (O(n√n)).

Ứng Dụng

  • Xác định nhanh số lượng số nguyên tố trong một khoảng.
  • Tối ưu hóa thuật toán kiểm tra số nguyên tố.
  • Ứng dụng trong mật mã, thống kê và phân tích dữ liệu.

Kết Luận

Bài toán đếm số nguyên tố từ m đến n có thể giải quyết bằng nhiều cách. Cách kiểm tra từng số dễ hiểu nhưng chậm, trong khi Sàng Eratosthenes 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

 

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

27 Học Python – Kiểm tra số nguyên tố bằng Python (2 cách tối ưu)

Bài 27: Kiểm tra số nguyên tố bằng Python (2 cách tối ưu)

Giới thiệu

Số nguyên tố là số tự nhiên lớn hơn 1, chỉ chia hết cho 1 và chính nó. Trong bài viết này, chúng ta sẽ viết chương trình kiểm tra số nguyên tố bằng hai cách: cách đơn giản và cách tối ưu hơn.

Ư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 21: Tìm Những Số Chia Hết Cho 3 bằng Python mới nhất
  2. Bài 22: Đếm Số Lượng Số Chia Hết Cho 3 Bằng Python
  3. Bài 23 : Tính Tổng Những Số Chẵn Bằng Python
  4. Bài 24 Tính Tổng Những Số Chia Hết Cho 3 Hoặc 5 Bằng Python
  5. Bài 25:  Đếm Số Ước Của Số Nguyên n Bằng Python
  6. Bài 26 – Tính Tổng Những Số Chia Hết Cho 3 và 5 bằng Python
  7. Bài 27: Kiểm tra số nguyên tố bằng Python (2 cách tối ưu)

  8. Bài 28: Tính Tổng Các Số Nguyên Từ m Đến n Bằng Python
  9. Bài 29: Đếm Số Chia Hết Cho 3 Từ m Đến n Bằng Python
  10. 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

Cách 1: Kiểm tra số nguyên tố bằng vòng lặp đơn giản

Phương pháp này kiểm tra xem số đó có chia hết cho bất kỳ số nào từ 2 đến n-1 hay không.

Chương trình:

# Hàm kiểm tra số nguyên tố (cách đơn giản)
def la_so_nguyen_to(n):
    if n < 2:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True
# Kiểm tra
n = int(input("Nhập số cần kiểm tra: "))
print(f"{n} là số nguyên tố" if la_so_nguyen_to(n) else f"{n} không phải là số nguyên tố")

Giải thích:

  • Nếu n < 2, kết quả trả về False (không phải số nguyên tố).
  • Duyệt từ 2 đến n-1, nếu tìm thấy số nào mà n chia hết, trả về False.
  • Nếu không tìm thấy số nào chia hết, n là số nguyên tố (True).

Độ phức tạp: O(n) (Chạy chậm nếu n lớn).


Cách 2: Kiểm tra số nguyên tố bằng căn bậc hai (Tối ưu)

Thay vì kiểm tra từ 2 đến n-1, ta chỉ cần kiểm tra từ 2 đến √n. Nếu n có ước số khác 1n, nó chắc chắn nằm trong đoạn 2 → √n.

Chương trình:

import math

# Hàm kiểm tra số nguyên tố (cách tối ưu)
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
    for i in range(5, int(math.sqrt(n)) + 1, 2):  # Chỉ kiểm tra số lẻ từ 5 trở đi
        if n % i == 0:
            return False
    return True

# Kiểm tra
n = int(input("Nhập số cần kiểm tra: "))
print(f"{n} là số nguyên tố" if la_so_nguyen_to_toi_uu(n) else f"{n} không phải là số nguyên tố")

Giải thích:

  • Nếu n nhỏ hơn 2, không phải số nguyên tố.
  • Nếu n là 2 hoặc 3, chắc chắn là số nguyên tố.
  • Nếu n chia hết cho 2 hoặc 3, nó không phải số nguyên tố.
  • Duyệt từ 5 đến √n, kiểm tra các số lẻ (vì số chẵn đã bị loại trước đó).

Độ phức tạp: O(√n) (Nhanh hơn nhiều so với O(n)).


So sánh hai cách

Phương phápCách hoạt độngĐộ phức tạp
Vòng lặp đơn giảnKiểm tra từ 2 đến n-1O(n)
Căn bậc hai (Tối ưu)Kiểm tra từ 2 đến √n (loại bỏ số chẵn)O(√n)

Cách tối ưu nhanh hơn rất nhiều và nên dùng khi n lớn!

Kết luận

Chúng ta đã tìm hiểu hai cách kiểm tra số nguyên tố trong Python: một cách dễ hiểu và một cách tối ưu hơn. Nếu bạn muốn kiểm tra số lớn, hãy sử dụng phương pháp căn bậc hai để giảm thời gian tính toán.

Bạn thích cách nào hơn? Hãy thử chạy code và trải nghiệm nhé!

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

 

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