枝分かれと繰り返しで素数判定プログラム書く課題出て適当にやってたらそれっぽいものができちゃったんだけど、なんで出来たの分からないから助けて

ソースは以下

def prime(n)
if n==0 || n==1 || n<0 then return 'Not Defined' end
i=2
while n%i>0 do
if i==n-1 then return 'true' end
i=i+1
end
return 'false'
end