Em hãy viết chương trình nhập số tự nhiên n > 1
Em hãy viết chương trình nhập số tự nhiên n > 1, sau đó in ra tất cả các ước số nguyên tố khác nhau của n theo hàng ngang trên màn hình. Ví dụ:
Giải sách bài tập Tin học 10 Bài 31: Thực hành viết chương trình đơn giản
Câu 31.9 trang 65 SBT Tin học 10: Em hãy viết chương trình nhập số tự nhiên n > 1, sau đó in ra tất cả các ước số nguyên tố khác nhau của n theo hàng ngang trên màn hình. Ví dụ:
- Nếu n = 10 thì in ra 2 5.
- Nếu n = 12 thì in ra 2 3.
Lời giải:
Hướng dẫn:
Lưu ý đến yêu cầu của bài toán là không in tất cả các ước nguyên tố trong khai triển n thành tích các thừa số nguyên tố, mà chỉ in mỗi ước số nguyên tố một lần. Vì vậy nếu đã tìm ra được một ước nguyên tố k của n thì cần giảm n bằng cách chia n cho k cho đến khi không chia hết được nữa thì tìm tiếp sang số tiếp theo.
Chương trình có thể viết như sau:
n = int(input("Nhập số tự nhiên n: "))
print(n,":", end = " ")
k = 2
while n > 1:
while k < n and n%k != 0:
k = k +1
if k<=n and n%k == 0:
print(k, end = " ")
while n%k == 0:
n = n//k