本文共 605 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要找到1到n之间的所有完数。完数的定义是这样的数,其所有因子(不包括自身)相加等于它自身。
这种方法的时间复杂度是O(n^2),因为对于每个数i,我们遍历到i-1的所有数。尽管n的范围不大,这种方法是可行的。
n = int(input())result = []for i in range(1, n + 1): s = 0 for j in range(1, i): if i % j == 0: s += j if s == i: result.append(str(i))print(' '.join(result)) 这种方法简单直接,能够有效地解决问题,特别适用于n范围不大的情况。
转载地址:http://vxtp.baihongyu.com/