А ето и алгоритъмът:
Ще обясня само какво прави функцията, другото е ясно(един фор до 500 и проверка на функцията

)
Функцията вика числото n.Нека предположим, че n e числото 153. Инициализираме две променливи s=0 и crnt=n.Тъй като s ще ни бъде сумата на кубовете на цифрите, затова и трябва първоначално да е нула. Пускаме цикъл
Код:
while crnt!=0
и ще започнем да взимаме цифрите на crnt отзад-напред. За тази цел, всеки начинаещ програмист трябва да знае, че
Код:
crnt%10
винаги връща последната цифра на дадено число. Следователно,
Код:
crnt%10
ще ни върне числото 3, а операцията
Код:
Pow(crnt%10,3)
ще ни върне последната цифра на crnt на 3та степен. Събираме това число към s(което ни е нула) и вече последната цифра е обработена. Тъй като искаме вече да стигнем по предпоследната, идеята е предпоследната да ни стане последна, а това става като разделим целочислено на 10. Следователно, ако 153 разделим целочислено на 10, ще ни върне 15 и вече предпоследната цифра е последна

Така алгоритъмът продължава, докато crnt не стане равно на 0, а това ще стане, когато първата цифра разделим на 10(1 делено на 10 =0)В момента на излизане от цикъла s вече е сумата на кубовете на цифрите и единственото, което ни остава, е да сравним s със n. Функцията връща булева стойност true(истина), ако условието е изпълнено(т.е. n е равно на сумата на кубовете на цифрите си), и false(лъжа), ако не е изпълнено.
Не знам дали обясних добре, кажи, ако нещо те притеснява или не си разбрала, за първи път обяснявам така задача
