Я новичок в языке программирования Python, и я использую веб-сайт, чтобы помочь мне тренироваться. Это дало мне возможность создать программу, которая возвращает значение true, если заданное число равно нарциссическое или иначе ложно.
Примеры нарциссических чисел:
153 (3 digits): 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
1634 (4 digits): 1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634
Но дляпо какой-то причине, когда дается число 371
, функция возвращает False
вместо True
.
Код:
def narcissistic(value):
logical = True
logical2 = True
i = 0
j = 0
notation = 10
sum = 0
#Calculating the number notation
while logical:
if 10 ** i <= value:
notation = 10 ** i
i = i + 1
else:
logical = False
#i from now on is also the qauntity of digits
while logical2:
if ( notation / 10 ** j ) >= 1:
sum = sum + ( value // ( notation / 10 ** j ) ) ** i
j = j + 1
else:
logical2 = False
if sum == value:
return True
else:
return False