пятница, 8 ноября 2013 г.

Ocaml: проверка чисел на простоту

Реализовал сегодня процедуру проверки чисел на простоту, используя язык OCaml:

let rec isprime_iter n j =
  if j*j>n then
    1
  else 
    if n mod j==0 then
      0
    else
      isprime_iter n (j+1) ;;

 let isprime n =
   if n<=1 then
     0
   else
     isprime_iter n 2 ;;

Проверка реализована в духе функционального подхода, когда рекурсивная функция заменяет собой цикл. Верхняя функция isprime_iter является вспомогательной, но именно она наиболее важна, а нижняя функция isprime -  интерфейсная, так как именно её вызывают для тестирования   чисел.

Проверяем в работе:

# isprime 2147483647;;
- : int = 1

Комментариев нет:

Отправить комментарий