Nếu n là hợp số thì dễ thấy n phải có ước số nguyên tố nhỏ hơn hoặc bằng căn bậc hai của n . Viết chương
117
20/01/2024
Câu 32.9 trang 67 SBT Tin học 10: Nếu n là hợp số thì dễ thấy n phải có ước số nguyên tố nhỏ hơn hoặc bằng . Viết chương trình tối ưu hoá hơn nhiệm vụ 1, bài 31, theo cách sau: để tìm ước số nguyên tố nhỏ nhất chỉ cần tìm trong các số 2, 3,... Nếu trong dãy trên không tìm thấy ước của n thì kết luận ngay n là số nguyên tố.
Trả lời
Chương trình có thể viết như sau:
from math import sqrt
n = int(input("Nhập số tự nhiên n: "))
m = n
k = 2
NT = []
while m > 1:
while m%k != 0:
if k < sqrt(m):
k = k + 1
else:
k = m
NT.append(k)
m = m//k
count = len(NT)
if count == 0:
print(n, "không là số nguyên tố")
elif count == 1:
print(n,"là số nguyên tố")
else:
print(n,"là hợp số")
print(n,"=", end = " ")
for i in range(count):
if i < count - 1:
print (NT[i],"x", end = " ")
else:
print(NT[i])
* Chương trình chạy thử với 2 bộ dữ liệu là 12, 13.
Xem thêm các bài giải SBT Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:
Bài 29: Nhận biết lỗi chương trình
Bài 30: Kiểm thử và gỡ lỗi chương trình
Bài 31: Thực hành: Viết chương trình đơn giản
Bài 32: Ôn tập lập trình Python
Bài 33: Nghề thiết kế đồ họa máy tính
Bài 34: Nghề phát triển phần mềm