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