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

2025-04-09 00:40:59

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寻找相亲数(包含完美数、相亲数链)
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:76
  • 阅读量:36
  • 阅读量:69
  • 阅读量:46
  • 阅读量:72
  • 猜你喜欢