计算从 1 到 N 的数字对,其乘积可被 C++ 中的总和整除
给定一个数字N。目标是找到从1到N的数字对,使得对的乘积等于对的总和。
让我们通过例子来理解。
输入-N=11
输出-编号对的计数。从1到N,乘积可被它们的总和整除是−1
说明-数字3和6的乘积为18,它们的和9整除18。
输入-N=30
输出-编号对的计数。从1到N,乘积可被它们的总和整除是−12
解释-对是-(3,6),(4,12),(5,20),(6,12),(6,30),(8,24),(9,18),(10,15),(12,24),(15,30),(20,30),(21,28)
对数-12
下面程序中使用的方法如下
我们将使用FOR循环从1到N遍历两次。对于每一个,我搜索j使得(i,j)的乘积可以被和i+j整除。suci,j对的增量计数使得i!=j。
以数字N作为输入。
函数Sum_N(N)接受N并返回对的计数,使得数字的乘积可以被数字之和整除。
从i=1遍历到i
从j=i+1到j<=N遍历。
取初始计数为0。
对于每个i和j计算temp=(i*j)%(i+j)。
如果temp为0,则sum将产品完全除以。递增计数。
在所有迭代结束后,计数将具有此类对的总数。
返回计数作为结果。
示例
#includeusing namespace std; int Sum_N(int N){ int count = 0; for (int i = 1; i < N; i++){ for (int j = i + 1; j <= N; j++){ int temp = (j * i) % (j + i); if (!temp){ count++; } } } return count; } int main(){ int N = 20; cout<<"从1到N且乘积可被其总和整除的数对的计数为: "< 输出结果 如果我们运行上面的代码,它将生成以下输出-
从1到N且乘积可被其总和整除的数对的计数为: 6