zhou11119 2023-10-28 15:46 采纳率: 83.7%
浏览 6
已结题

python求亲密数对

键盘输入n,n在2至2000之间,求2至n中的亲密数对。
就是a的(去掉1和自己的)因子和等于b,b的(去掉1和自己)因子和等于a,且a≠b。
如48和75是亲密数对。
48的因子和为2+3+4+6+8+12+16+24=75,
而75的因子和为3+5+15+25=48。
输入
200
输出
48 75
75 48
140 195
195 140

  • 写回答

2条回答 默认 最新

  • 酷爱码 2023-10-28 17:05
    关注
    
    import math
    
    def factor_sum(n):
        factors = [1]
        for i in range(2, int(math.sqrt(n)) + 1):
            if n % i == 0:
                factors.append(i)
                factors.append(n // i)
        return sum(factors)
    
    def find_amicable_pairs(n):
        pairs = []
        for a in range(2, n+1):
            b = factor_sum(a)
            if a != b and factor_sum(b) == a:
                pairs.append((a, b))
        return pairs
    
    n = int(input("请输入一个正整数n(2~2000):"))
    pairs = find_amicable_pairs(n)
    for pair in pairs:
        print(pair[0], pair[1])
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物