Алгоритм проверки, является ли число идеальным числом

Я ищу алгоритм, чтобы определить, является ли данное число идеальным числом.

Самое простое, что приходит мне в голову:

  1. Найдите все множители числа
  2. Выведите простые множители [кроме самого числа, если оно простое] и сложите их, чтобы проверить, является ли оно идеальный номер.

Есть ли способ лучше? При поиске были обнаружены некоторые работы Евклида, но не нашлось ни одного хорошего алгоритма. Также этот сценарий гольфа не помог: https://stackoverflow.com/questions/3472534/checking-whether-a-number-is-mat Mathematically-a-perfect-number .

Числа и т. Д. Могут быть кэшированы и т. Д. При использовании в реальном мире [я не знаю, где используются точные номера:)]
Однако, поскольку об этом спрашивают в интервью,Я предполагаю, что должен быть "производный" способ его оптимизации.

Спасибо!

7
задан Community 23 May 2017 в 12:08
поделиться