Ədədin sadə vuruqlara ayrılması

   Ədədin sadə vuruqlara ayrılması alqoritmi ədədin sadəliyinin yoxlanılması alqoritminə bənzəyir. Verilmiş n ədədinin ardıcıl şəkildə 2-dən başlayaraq natural ədədlərə bölünməsini yoxlayacağıq. Əgər natural ədəd olan i verilmiş n ədədini qalıqsız bölürsə, onda həmin natural ədədi sadə vuruqlar siyahısına əlavə edəcəyik. Bölünmənin nəticəsini isə n dəyişəninə mənimsədəcəyik. Bölünmə qalıqsız davam etdiyi müddətcə i bölənini sabit saxlayacağıq, qalıq alındıqda onu bir vahid artıracağıq.

   Alqoritmi √n olana qədər davam etdirmək lazımdır. Əgər sonda n ədədi 1-ə bərabər olmazsa, deməli o sadə ədəddir.  Çünki kvadrat kökündən böyük olmayan heç bir ədədə bölünmür. Odur ki, onu da sadə vuruqlar siyahısına əlavə etmək lazımdır.

n = int(input())

m = []
i = 2

while i * i <= n:     
    if n % i == 0:         
        m.append(i)         
        n = n // i     
    else:         
        i+=1 

if n > 1:
    m.append(n)

for i in m:
    print(i, end=" ")

Proqram icrasının nümunələri:

130
2 5 13
270
2 3 3 3 5