Диапазон чисел, которые можно записать данным зависит от количества бит, отведённых для представления мантиссы и показателя. На обычной 32-битной вычислительной машине, использующей двойную точность (64 бита), мантисса составляет 1 бит знак + 52 бита, показатель — 1 бит знак + 10 бит. Таким образом получаем диапазон точности примерно от 4,94·10−324 до 1.79·10308 (от 2−52 × 2−1022 до ~1 × 21024). Пара значений показателя зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся значенияNaN (Not a Number, не число) и +/-INF (Infinity, бесконечность), получающихся в результате операций типа деления на ноль нуля, положительных и отрицательных чисел. Также сюда попадают денормализованные числа, у которых мантисса меньше единицы. В специализированных устройствах (например GPU) поддержка специальных чисел часто отсутствует. Существуют программные пакеты, в которых объём памяти выделенный под мантиссу и показатель задаётся программно, и ограничивается лишь объёмом доступной памяти ЭВМ.
n, i, m: longint;
s1, s2: string;
l1: integer;
begin
Write('Введите натуральное число: ');
Readln(n);
Writeln('Автоморфные числа:');
for i := 1 to n do
begin
m := sqr(i);
Str(i, s1);
l1 := Length(s1);
Str(m, s2);
if s1 = Copy(s2, Length(s2) - l1 + 1, l1) then Writeln(i)
end
end.
Тестовое решение:
Введите натуральное число: 10000
Автоморфные числа:
1
5
6
25
76
376
625
9376