Корень из числа типа BigInteger; - PascalABC.NET

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

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

Доброго времени суток! Возник такой вопрос, у нас есть число типа BigInteger, а как из него извлечь корень? Можно ли это вообще сделать? В Real перевести число возможности нет. Стал интересен этот вопрос, так что заранее спасибо за помощь или совет. (Ну еще и с наступающим всех)

Решение задачи: «Корень из числа типа BigInteger;»

textual
Листинг программы
begin
  var x := ReadString('Введите большое число:').ToBigInteger;
  var a := x div 2;
  var b := a - 1;
  repeat
    b := a;
    a := (a + x div a) div 2
  until a >= b;
  Print('Корень =', a)
end.

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

  1. Вводится строка, представляющая собой большое число, и преобразуется в тип BigInteger с помощью метода ToBigInteger.
  2. Затем число делится на 2, чтобы получить начальное значение для цикла.
  3. В цикле, пока значение переменной a больше значения переменной b, выполняется следующее:
  4. Значение переменной b присваивается значению переменной a.
  5. Значение переменной a обновляется как среднее арифметическое между a и x, делённым на a, с последующим делением на 2.
  6. Цикл повторяется до тех пор, пока значение переменной a не станет больше или равным значению переменной b.
  7. Выводится значение переменной a, представляющее собой корень из исходного числа.

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


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

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

8   голосов , оценка 4.375 из 5
Похожие ответы