Реализовал сегодня процедуру проверки чисел на простоту, используя язык OCaml:
Проверка реализована в духе функционального подхода, когда рекурсивная функция заменяет собой цикл. Верхняя функция isprime_iter является вспомогательной, но именно она наиболее важна, а нижняя функция isprime - интерфейсная, так как именно её вызывают для тестирования чисел.
Проверяем в работе:
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
Комментариев нет:
Отправить комментарий