Вопрос в том, что число задается в виде строки. Мы должны проверить, является ли это степень 2 или нет. где оно должно быть больше 2. Соответственно, мы должны вернуть 0 или 1.
class Solution:
# @param A : string
# @return an integer
def power(self, A):
if (int(A)<2):
return 0
val=int(A)
check=math.log(val)/math.log(2)
if (math.floor(check)==math.ceil(check)):
return 1
else:
return 0
Это возвращает 0 для "5070602400912917605986812821504", тогда как если я использую math.log10 () вместо math.log (), или если я напрямую использую math.log2 (). Возвращает 1.