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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告