用python寻找相亲数(包含完美数、相亲数链)

时间:2025-01-12 22:36:29

1、相亲数指的是满足以下要求的两个数字a和b:a的约数和等于b,b的约数和等于a。所以,先自定义一个函数,求出数字n的所有的约数:def yueshu(n): a=[] for i in range(1,n): if n%i==0: a.append(i) return a

用python寻找相亲数(包含完美数、相亲数链)

2、计算约数的和:def yueshuhe(n): b=yueshu(n) c=sum(b) return c

用python寻找相亲数(包含完美数、相亲数链)

3、这样,就可以寻找10000以内的相亲数:for i in range(1,10000): j=yueshuhe(i) if i<j and i==yueshuhe(j): print((i,j))

用python寻找相亲数(包含完美数、相亲数链)

4、如果a的约数和等于a,就称a为完美数。下面是寻找10000以内的完美数:for i in range(1,10000): if i==yueshuhe(i): print(i)

用python寻找相亲数(包含完美数、相亲数链)

5、如果a的约数和是b,b的约数和是c,c的约数和是a,且a、b、c互不相等,那么就称(a,b,c)是3阶相亲数链。10000以内没有3阶相亲数链。for i in range(1,10000): j=yueshuhe(i) k=yueshuhe(j) if i<j and i==yueshuhe(k): print((i,j,k))

用python寻找相亲数(包含完美数、相亲数链)

6、20000以内的五阶相亲数链只有一组:for i in range(0,20000): x=[i,] for j in range(5): k=yueshuhe(i) x.append(k) i=k if x[0]<x[1] and x[0]<x[2] and x[-1]==x[0]: print(x)

用python寻找相亲数(包含完美数、相亲数链)

7、2115324引出一个四阶相亲数链:i=2115324for j in range(10): k=yueshuhe(i) print(k) i=k

用python寻找相亲数(包含完美数、相亲数链)
© 2025 一点知道
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com