Какое простое число является самым большим множителем числа 600851475143? - Lisp

Узнай цену своей работы

Формулировка задачи:

Какое простое число является самым большим множителем числа 600851475143? Написать программы на Common Lisp и F# Помогите пожалуйста

Решение задачи: «Какое простое число является самым большим множителем числа 600851475143?»

textual
Листинг программы
  1. (defun max-prime-divisor (n)
  2.  (do ((a 2 (1+ a)))
  3.      ((> (* a a) n) n)
  4.   (if (zerop (mod n a))
  5.    (return (max-prime-divisor (/ n a))))))
  6.  
  7. ? (max-prime-divisor 600851475143)
  8. 6857

Объяснение кода листинга программы

В данном коде определен функцией max-prime-divisor, которая находит максимальное простое число, являющееся делителем числа n. В функции используется цикл do, который начинается с переменной a равной 2 и увеличивается на 1 с каждой итерацией, пока не найдено простое число, большее n. В каждой итерации цикла проверяется, является ли a делителем n. Если да, то функция рекурсивно вызывается для a и результат сохраняется в переменной n. Если нет, то цикл продолжается. Если делитель не найден, то функция возвращает 0, что означает, что самое большое простое число является делителем n. В конце кода вызывается функция max-prime-divisor с аргументом 600851475143, и результат выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы