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

更新于: 2020年12月2日

155 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告