Napište predikát je_prvocislo(X)
, který uspěje, pokud X je prvočíslo.
Pracujeme v unární artimetice, tedy čísla jsou 0,s(0),s(s(0))
atd.
Hint: netestujte až do odmocniny, ale stačí do poloviny, ta se lépe implementuje.
Pro zjednodušení práce s unární artimetikou použijte následující predikát pro dynamický překlad čísel z desítkové do unární
% vytvor(X,Y) - pomocna metoda pro tvoreni cisel v nasi unarni artimetice.
poté můžete testovat:
vytvor(0,0).
vytvor(X,s(Y)):-X>0,X1 is X - 1,vytvor(X1,Y).
?- vytvor(13,X),je_prvocislo(X).
Deadline: 24.3. 20:00