У некоторых телефонных номеров есть свойства, облегчающие их запоминание.
Например, такое: номер состоит из записанных подряд нескольких квадратов
неотрицательных целых чисел. Вот несколько номеров с этим свойством:
144-1-16-9-9
, 36-0-1-2401
. Некоторые из
номеров можно представить в «квадратном» виде несколькими способами:
169-49-16
, 16-9-49-16
,
169-4-9-16
.
Наша задача — написать программу sqphones.pl (от SQuare PHONES — квадратные телефонные номера), выводящую на экран, по одному в строке, «квадратные» телефонные номера:
%
./sqphones.pl 7
⋮ 64-256-1-4 64-256-1-9 64-256-4-0 64-256-4-1 64-256-4-4 64-256-4-9 64-256-9-0 64-256-9-1 64-256-9-4 64-256-9-9 64-256-16 ⋮ 169-0-0-36 169-0-0-49 169-0-0-64 169-0-0-81 169-0-1-0-0 169-0-1-0-1 169-0-1-0-4 169-0-1-0-9 169-0-1-1-0 169-0-1-1-1 ⋮
В командной строке указывается требуемое количество цифр. Дефисы показывают точки разбиения номера на квадраты. Один и тот же номер может войти в список несколько раз, если у него несколько «квадратных» представлений.