python枚举法

文章目录

  • 枚举法
    • 1、枚举法求最大公因数
    • 2、判断水仙花数

枚举法

对要解决的问题注意列举出所有的情况,逐步判断那些是符合要求的条件,从而得到问题的解

1、枚举法求最大公因数

思路1:先求n1的公因数,再求n2的公因数,再求公因数,取max

def common_factor(n1,n2):ls1,ls2 = [], []for i in range(n1):   # 求n1的所有因数if n1%i == 0:ls1.append(i)for j in range(n2):     # 求n2的所有因数id n2%j ==0:ls2.append(j)ls3 = []for i in ls1:if i in ls2:ls3.append(i)return max(ls3)

思路2:最大公因数不会超过n1,n2的最小值。倒着取即为最大

def common_factor(n1,n2):for i in range(min(n1,n2),0,-1):if n1&i == 0 and n2%i == 0:return i

2、判断水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)。是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:13+53+ 33 = 153。
求三位数的所有水仙花数

def is_narcrissistic(n):
res = []
for i in range(100,1000):t1 = i%100  # 个位t2 = i//10%10t3 = i//100if t1**3 + t2**3 + t3**3 == n:res.append(n)
return res


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部