Хотелось бы чуть-чуть добавить
alcoSHoLiK-а (хотя он скзаал всё безукоризненно и корректно), на правах выдумывания сложной теории из ничего:
Сообщение от alcoSHoLiK
... число, которое можно получить путем умножения разных комбинаций множителей. ...
|
Вернее будет сказать даже так: из условий задачи - противоречие (неодназначность точнее) разрешил факт неравенства возрастов - становися ясно, что среди всех возможных разложений только одно состоит из неравных друг-другу множителей (иначе бы этой информации не было достаточно, например: число 16=4*4=2*8=1*16). Если вариант разложения на неравные множители один, то оставшиеся (а, выходит, единственный) - разложение на равные множители.
Т.о. число голубей N, такое, что:
N=q^2=w*a, где w!=a.
Казалось бы что это даёт? А вот что:
1) ускорение алгоритма перебора
2) можно увеличить диапазон поиска без потери верного решения.
Действительно: нужно прогнать некую переменную по значаениям от 2 (значения менее 2 - т.е. 0 и 1 сразу можно выкинуть, т.к. 0 - вообще сингулярный случай, а 1 - очевидно раскладывается только на 1*1 - не подходят) до значения [округление_в_меньшую_сторону(sqr(6))]=2.
Т.е. в данной формулировке задачи, необходимо перебрать числа от 2 до 2. Т.е. всего одно число и убедиться, что его квадарат раслкадывается на неравные множители единственным образом. Действительно: 2^2=4=4*1.
На самом деле подходящих решений нет вплоть до 9 (не включая):
3^2=9=9*1 - для поиска этого числа, нужно выполнить всего одну итерацию предложенного алгоритма.
Замечу также, что следующий квадрат (16) не удовлетворяет условию.