Viết một chương trình nhỏ để tìm và liệt kê tất cả các số nguyên tố trong đoạn từ A đến B. Đây là một bài toán nhỏ nhưng lại rất thú vị và hữu ích trong việc hiểu về lặp và điều kiện trong ngôn ngữ lập trình Python.
Mục lục
Bài toán cần xử lý
Ta cần viết một hàm để liệt kê tất cả các số nguyên tố trong một đoạn từ A đến B. Chúng ta cần xác định số nguyên tố bằng cách sử dụng một hàm kiểm tra số nguyên tố. Đầu vào của hàm là hai số tự nhiên A và B, trong đó A <= B.
Kiến thức cần có
- Sử dụng hàm
input()
và hàmprint()
- Hiểu về cấu trúc lặp trong Python
- Hiểu về cấu trúc rẽ nhánh trong Python
- Hiểu về biến và kiểu dữ liệu
- Biết cách sử dụng hàm trong Python
- Biết cách xử lý ngoại lệ (Exception Handling) trong Python
Định dạng đầu vào
Đầu vào của chương trình gồm hai dòng:
- Dòng đầu tiên chứa số tự nhiên A
- Dòng thứ hai chứa số tự nhiên B
Lưu ý: A <= B
Định dạng đầu ra
Đầu ra của chương trình là một dòng duy nhất, hiển thị các số nguyên tố trong đoạn [A, B]. Các số được cách nhau bằng một khoảng trắng.
Lưu ý: Nếu A hoặc B nhỏ hơn 0, chương trình sẽ xuất thông báo: “Vui long nhap cac so tu nhien!” Nếu A > B, chương trình sẽ xuất thông báo: “So thu nhat lon hon so thu hai!” Nếu định dạng đầu vào không hợp lệ, chương trình sẽ xuất thông báo: “Dinh dang dau vao khong hop le!”
Ví dụ
Input 1:
2
17
Output 1:
2 3 5 7 11 13 17
Input 2:
7620
7760
Output 2:
7621 7639 7643 7649 7669 7673 7681 7687 7691 7699 7703 7717 7723 7727 7741 7753 7757 7759
Input 3:
-5
8
Output 3:
Vui long nhap cac so tu nhien!
Input 4:
15
10
Output 4:
So thu nhat lon hon so thu hai!
Input 5:
Kteam
Output 5:
Dinh dang dau vao khong hop le!
Hướng dẫn
Bên dưới là một đoạn mã mẫu để giúp bạn hiểu cách giải quyết bài toán này:
import math
def kiem_tra_so_nguyen_to(n):
if n == 1:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
def liet_ke_so_nguyen_to(a, b):
for i in range(a, b + 1):
if kiem_tra_so_nguyen_to(i):
print(i, end=' ')
try:
a = int(input())
b = int(input())
if a < 0 or b < 0:
print("Vui long nhap cac so tu nhien!")
elif a > b:
print("So thu nhat lon hon so thu hai!")
else:
liet_ke_so_nguyen_to(a, b)
except:
print("Dinh dang dau vao khong hop le!")
Chương trình trên sẽ yêu cầu bạn nhập hai số tự nhiên A và B từ bàn phím. Sau đó, nó sẽ xử lý và hiển thị các số nguyên tố trong đoạn từ A đến B theo định dạng yêu cầu. Nếu có lỗi xảy ra, chương trình sẽ hiển thị thông báo lỗi tương ứng.
Hãy thử chạy chương trình và xem kết quả!
Kết luận
Trong bài viết này, chúng ta đã học cách viết một chương trình đơn giản để liệt kê các số nguyên tố trong một đoạn từ A đến B. Bạn có thể thử cách giải quyết bài toán này và chia sẻ bài giải của bạn trong phần bình luận. Chúng tôi rất mong nhận được ý kiến đánh giá và góp ý từ bạn.
Hãy tiếp tục học tập và khám phá những bài toán thú vị khác. Chúc bạn thành công và không ngại khó!