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

 时间:2026-02-15 02:35:16

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=2115324

for j in range(10):

    k=yueshuhe(i)

    print(k)

    i=k

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

  • 求极限的方法大全
  • z=x^2+y^2图像怎么画
  • 如何用导数知识画x^2+y^2=1的图像
  • 弗兰克—赫兹实验
  • tfboys校园巡回演唱会有哪些学校
  • 热门搜索
    旅游贴士 沙湖旅游攻略 去哪儿旅游网 中国旅游网站排名 厦门的旅游景点 3月份适合去哪里旅游 北京市旅游地图 云南省旅游网 乌镇旅游官网 扬州旅游地图