
Дуже давно не програмував на Паскалі. Тут знадобилося невелике завдання зробити. Яку легку версію встановити, щоб був командний рядок і можна було вирішити наступне підзавдання:
звести ціле число у велику міру: x=a^(p-2), де p - велике ціле число 10^30. Боюсь, що у звичайному Паскалі необхідні функції до роботи з великими числами не подключены. А також перевірити, чи ділиться велике число p (10^30) на a.
p.s. Виявив, що виходять якісь дуже великі числа – навіть 2^(10^30) це дуже багато.
Числа, справді дикі. Здається, в «натуральному» вигляді їх ніяким типом не втримаєш (навіть Int64). Працювати з такими числами дуже зручно, якщо використовувати логарифми.
Перевірити ділимість p (10^30) на a можна також за допомогою логарифмів. Нехай p = 10 ^ 32
Ну а далі просто обчислити різницю між x і, скажімо, Trunc(x) і порівняти її (різницю) з якимось маленьким числом (наприклад, з 1E-15), яке буде служити критерієм, що дозволяє стверджувати, що x із заданим ступенем точності можна вважати цілим (і, отже, стверджувати, що p ділиться на a практично без залишку).
P.S. Сподіваюся, на ніч дивлячись, нічого не наплутав із математикою.