在C++中計算給定範圍內A或B的總除數


我們給出四個整數L、R、A和B。目標是找到[L,R]範圍內完全整除A或B或兩者之一的數字個數。

我們將從L遍歷到R,對於每個數字,如果number%A==0或number%B==0,則增加除數計數。

讓我們透過例子來理解。

輸入 − L=10, R=15, A=4, B=3

輸出 − A或B的除數個數 − 2

解釋

Number 12 is fully divisible by 3 and 4.
Number 15 is fully divisible by 3 only.
Total divisors=2

輸入 − L=20, R=30, A=17, B=19

輸出 − A或B的除數個數 − 0

解釋 − 20到30之間沒有完全可被A或B或兩者整除的數字。

下面程式中使用的演算法如下

  • 我們使用了四個變數A、B、L和R。

  • 函式countDivisors(int l, int r, int a, int b) 將所有輸入作為輸入,並返回位於[L, R]範圍內的A或B或兩者的除數。

  • 將初始計數設定為0。

  • 從i=L到i=R,如果i%a==0或i%b==0,則遞增計數。

  • 迴圈結束時,計數為A或B的除數。

  • 返回計數作為結果。

示例

 線上演示

#include <bits/stdc++.h>
using namespace std;
int countDivisors(int l, int r, int a,int b){
   int count = 0;
   for (int i = l; i <= r; i++){
      if(i%a==0 || i%b==0)
         { count++ ; }
   }
   return count;
}
int main(){
   int L=5;
   int R=15;
   int A=2;
   int B=5;
   cout <<endl<< "Total divisors of A and B : "<<countDivisors(L,R,A,B);
   return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

Total divisors of A and B : 7

更新於:2020年8月29日

299 次檢視

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.