Prime或不使用oz语言



我试图做一个函数来检查值是否为素数或不使用尾递归函数,所以请有人帮助我这个

declare
fun {PrimeR X D}
   if X==2 orelse X==3 then 1
   elseif  X<2 andthen ((X mod D)==0) andthen D =< X then 0
   elseif ((X mod D)=0) then 1
   else {PrimeR X D+1}
   end
end
{Browse {PrimeR 6 1}}

如果您想使用迭代函数

declare
fun {IsPrime X}
   fun {PrimeItter X N}
      case (X mod N) of 0 then X==N
      else {PrimeItter X N+1} end
   end
in
   {PrimeItter X 2}
end
{Browse {IsPrime 31}}

最新更新