我们给了四个整数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