在数学中,如果一个整数 n 能被另一个正整数 d 整除,那么称 d 是 n 的因数,n 是 d 的倍数。例如,6 能被 1、2、3 和 6 整除,因此 1、2、3 和 6 都是 6 的因数。
而约数,则是指一个数的所有因数所组成的集合。比如,12 的因数包括 1、2、3、4、6 和 12,因此 12 的约数集合为 {1, 2, 3, 4, 6, 12}。
在 Python 中,可以通过遍历判断每个数是否是给定数的因数,来求一个数的所有约数。下面是一个示例代码:
def get_divisors(n): divisors = [] for i in range(1, n+1): if n % i == 0: divisors.append(i) return divisors # 测试程序 print(get_divisors(12)) # 输出结果:[1, 2, 3, 4, 6, 12]
上述代码定义了一个函数 get_divisors(n)
,接收一个整数 n 作为参数,返回 n 的所有约数的列表。在函数体内,使用循环遍历从 1 到 n 的所有整数,使用取余操作判断每个数是否是 n 的因数,如果是则把该数加入到列表 divisors 中。最后返回这个列表即可。
需要注意的是,上述代码会计算 1 到 n 的所有数的因数,如果要优化为只计算到 n 的平方根即可。