在C ++中计算给定范围内的A或B的总除数

我们给了四个整数L,R,A和B。目标是找到[L,R]范围内的数字,它们将A或B或两者全部除。

我们将通过从L遍历到R进行此操作,如果数字%A == 0或数字%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)将全部作为输入,并返回A或B或两个都在[L,R]范围内的除数。

  • 将初始计数设为0。

  • 如果i%a == 0或i%b == 0,则从i = L到i = R。

  • 在循环结束时算为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
猜你喜欢