📅  最后修改于: 2023-12-03 15:27:59.105000             🧑  作者: Mango
本程序是用来计算从1到N的数字对,满足这些数字对的乘积可以被它们的和整除的个数。输入一个正整数N,输出满足条件的数字对的个数。
对于每个数字对(i,j),我们需要判断它们的乘积是否可以被它们的和整除,即判断$i \times j$是否可以被$(i+j)$整除。
对于$i=1 \sim N$,我们可以枚举$j$,然后判断$i \times j$是否可以被$(i+j)$整除。
def count_pairs(N):
"""
计算从1到N的数字对,其乘积可被其和除的个数
:param N: 正整数N
:return: 满足条件的数字对的个数
"""
cnt = 0
for i in range(1, N + 1):
for j in range(i, N + 1):
if i * j % (i + j) == 0:
cnt += 1
return cnt
>>> count_pairs(3)
1
>>> count_pairs(4)
2
>>> count_pairs(5)
3