32 Học Python - In các số nguyên tố từ m đến n mới nhất
DANH SÁCH TÓM TẮT:
Giới Thiệu
Bài toán in ra các 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ả.
Cách Xác Định Số Nguyên Tố
Một số x là số nguyên tố nếu:
Dưới đây là chương trình Python để in các 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 in các số nguyên tố trong đoạn [m, n] def in_so_nguyen_to(m, n): primes = [i for i in range(m, n + 1) if la_so_nguyen_to(i)] return primes # 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: primes = in_so_nguyen_to(m, n) print(f"Các số nguyên tố từ {m} đến {n} là: {primes}")
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 in số nguyên tố từ m đến n def in_so_nguyen_to_sang(m, n): primes = sang_eratosthenes(n) return [i 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: primes = in_so_nguyen_to_sang(m, n) print(f"Các số nguyên tố từ {m} đến {n} là: {primes}")
Giải Thích Cách Tối Ưu
Ứng Dụng
Kết Luận
Bài toán in các 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!
Khóa học Python online từ cơ bản đến nâng cao
2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án SỞ…
1 Đề Thi Học Sinh Giỏi Tin học THCS cấp Tỉnh Tiền Giang có đáp…
Phần 1: Các bài tập dễ và cơ bản làm được các bài này các…
100 triệu là mức lương của lập trình Python vì sao? 1. Vì sao Python…
Bài 71: Đổi tất cả ký tự trong một chuỗi thành ký tự thường bằng…
Bài 26 - Tính Tổng Những Số Chia Hết Cho 3 và 5 bằng Python…
This website uses cookies.