Chúng ta được cung cấp bốn số nguyên L, R, A và B. Mục đích là tìm số lượng các số trong phạm vi [L, R] chia hết cho A hoặc B hoặc cả hai.
Chúng tôi sẽ thực hiện việc này bằng cách chuyển từ L sang R và đối với mỗi số nếu số% A ==0 hoặc số% B ==0 thì số lượng ước tăng dần.
Hãy cùng hiểu với các ví dụ.
Đầu vào - L =10, R =15, A =4, B =3
Đầu ra - Đếm ước của A hoặc B - 2
Giải thích -
Number 12 is fully divisible by 3 and 4. Number 15 is fully divisible by 3 only. Total divisors=2
Đầu vào - L =20, R =30, A =17, B =19
Đầu ra - Đếm ước số của A hoặc B - 0
Giải thích - Không có số nào từ 20 đến 30 chia hết cho A hoặc B hoặc cả hai.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Chúng tôi đã lấy bốn biến A, B, L và R.
-
Hàm countDivisors (int l, int r, int a, int b) nhận tất cả làm đầu vào và trả về các ước của A hoặc B hoặc cả hai nằm trong phạm vi [L, R].
-
Lấy số lượng ban đầu là 0.
-
Bắt đầu từ i =L đến i =R, nếu i% a ==0 hoặc i% b ==0.
-
Ở cuối vòng lặp được đếm là ước của A hoặc B.
-
Kết quả là số lượt trả lại.
Ví dụ
#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;
} Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Total divisors of A and B : 7