📜  检查号码是否为鸭号(1)

📅  最后修改于: 2023-12-03 15:10:52.349000             🧑  作者: Mango

检查号码是否为鸭号

鸭号是指形如“5的n次方”(其中n是正整数)的数字,例如5、25、125等等。检查一个数字是否为鸭号可以使用以下代码:

def is_duck_number(num):
    n = int(num ** 0.2)
    return num == 5 ** n * 10 ** (len(str(num)) - len(str(5 ** n)))

该函数接受一个整数参数num,先用0.2次方计算n的值,然后用5的n次方乘以10的(num的位数-n的位数)次方,得到一个数duck_num。如果duck_num等于num,则num是鸭号。函数返回True或False。

下面是一个使用示例:

num = 78125
if is_duck_number(num):
    print(f"{num}是鸭号")
else:
    print(f"{num}不是鸭号")

输出结果为:

78125是鸭号

该方法的时间复杂度为log(N),在检查数据较大的情况下效率较高。