Ə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
