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

31.9. 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.

Bài Làm:

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