算法学习(5) 数学问题求解系列(2)亲密数

前言

这篇是本系列的第二篇,我开始感觉到这些练习的价值了。这些问题,咋一看,超级简单,不过真正动手,很考验对编程语言的理解和掌握程度,所以不要小看这些练习哦。这些问题还有另一个特点,直接编写程序找答案,运行会很慢,特别需要多动脑筋想更高效的求解方法。

问题

求 10,0000 (10万) 以内的亲密数。

名词解释

亲密数,假设有两个不相等的整数a 和 b, a 的因子和等于b的因子和。这里的因子和,可以利用上一篇博客研究完数的程序。

编程思路

  1. 先求第一个数a的因子和 factor_sum_a
  2. 假设第二数 b = factor_sum_a (记得确定 a 不等于 b)
  3. 对b求因子和 factor_sum_b
  4. 比较是否 factor_sum_b 等于 a (这里真的很绕,注意看清楚)

实现代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2019-04-04 10:45:49
# @Author  : Promise (promise@mail.ustc.edu.cn)
# @Link    : ${link}
# @Version : $Id$


# 先单独写一个求因子和返回因子和的函数
def GetSumFactor(num):
    factorSum = 0
    for j in range
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值