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 n. 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ố.
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
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.
Tham gia Cộng đồng Lazi trên các mạng xã hội | |
Fanpage: | https://www.fb.com/lazi.vn |
Group: | https://www.fb.com/groups/lazi.vn |
Kênh FB: | https://m.me/j/AbY8WMG2VhCvgIcB |
LaziGo: | https://go.lazi.vn/join/lazigo |
Discord: | https://discord.gg/4vkBe6wJuU |
Youtube: | https://www.youtube.com/@lazi-vn |
Tiktok: | https://www.tiktok.com/@lazi.vn |
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |