Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Период дроби c++

#cpp #математика


Насколько большой может быть длина периода дроби типа int/int ?
    


Ответы

Ответ 1



Длина периода гарантированно меньше значения знаменателя, поскольку для зацикливания требуется получить повтор остатка от деления. Предположу, что максимальная длина достигается на максимальном простом знаменателе d, не являющемся делителем 10^k-1 для любого k. Причём, эта длина составит p-1. в качестве числителя взять 1. Доказать не могу и не проверял. Если никто не проверит, поэксперементирую вечером.

Ответ 2



231-2 = 2147483646. Наибольшее простое число формата int равно 231-1 = 2147483647, это простое число Ферма Мерсенна. А уникальных остатков на один меньше. Положительный числитель - любой, кроме знаменателя.

Ответ 3



Нулевой, поскольку деление int/int - целочисленное, так что в результате получается целое число. Это вам не Питон :)

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

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