在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
广告