📜  计算从1到N的数字对,其乘积可被其和除(1)

📅  最后修改于: 2023-12-03 15:27:59.105000             🧑  作者: Mango

计算从1到N的数字对,其乘积可被其和除

介绍

本程序是用来计算从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