在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(intl,intr,inta,intb)将全部作为输入,并返回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