Как составить программу на совершенство числа?

Не могу сделать алгоритм на проверку числа на совершенство можете помочь.Написать именно код чтобы он проверял число на совершенство.Язык Swift.Вот алгоритм который я сделал на бумаге.Также я пробовал написать кодом но что-то не получилось что нужно дороботать?
59d0ca70e0d8b259204305.jpeg59d0ca799c38c981708458.jpeg59d0ea923243c234963389.png
На последнее картинке получилось это может сработает?
  • Вопрос задан
  • 934 просмотра
Пригласить эксперта
Ответы на вопрос 2
sgjurano
@sgjurano
Разработчик
https://ru.m.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B2...

Есть 2 основных варианта, практичный и учебный.

В первом случае вам нужно просто захардкодить первые несколько совершенных чисел, поскольку они очень быстро растут.

Во втором случае вам нужно для проверяемого числа найти все делители, сложить их и проверить равенство с проверяемым числом.
Ответ написан
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
В коде ошибка. Прибавлять к sum надо делитель а не 1 каждый раз (sum=sum+i, а не +1).
Во вторых, можно цикл гнать до n/2 (включительно) а не до n. В блок-схеме у вас так и написано, но в коде не так.

Еще совет - начните if с новой строки после цикла. То как у вас if на той же строке что и закрывающая скобка от for - очень путает. И заодно, добавьте отступы внутри if внутри for (строка с прибавлением к sum).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы