C++ 中计算 1 到 N 之间乘积可被和整除的数字对
给定一个数字 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。对于每个 i,搜索 j 使得 (i,j) 的乘积可以被 i+j 的和整除。对于满足 i!=j 的 i,j 对,递增计数。
将数字 N 作为输入。
函数 Sum_N(N) 获取 N 并返回满足数字乘积可被数字和整除的数字对的数量。
从 i=1 遍历到 i<N。
从 j=i+1 遍历到 j<=N。
将初始计数设置为 0。
对于每个 i 和 j,计算 temp= (i*j)%(i+j)。
如果 temp 为 0,则和完全整除乘积。递增计数。
在所有迭代结束时,计数将包含此类数字对的总数。
返回计数作为结果。
示例
#include <bits/stdc++.h> using 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<<"Count of pairs of numbers from 1 to N with Product divisible by their Sum are: "<<Sum_N(N); return 0; }
输出
如果我们运行以上代码,它将生成以下输出 -
Count of pairs of numbers from 1 to N with Product divisible by their Sum are: 6
广告