हमें चर N, M, A और B दिए गए हैं। लक्ष्य सकारात्मक संख्याओं (i, j) के क्रमबद्ध जोड़े को खोजना है, ताकि उनका योग A और B दोनों से विभाज्य हो। और 1<=i<=N और 1<=जे<=एम.
हम i और j के लिए दो लूपों का उपयोग करके पार करेंगे। यदि योग (i+j)%A==0 &&(i+j)%B==0. वेतन वृद्धि की संख्या।
आइए उदाहरणों से समझते हैं।
इनपुट
N = 5, M = 10, A = 2, B = 3;
आउटपुट
Ordered pairs (i,j) where (i+j) is divisible by both A & B: 9
स्पष्टीकरण
Pairs will be (1,5) (2,4) (2,10) (3,3) (3,9) (4,2) (4,8) (5,1) (5,7). Total pairs is 9.
इनपुट
N = 10, M = 10, A = 10, B = 11;
आउटपुट
Ordered pairs (i,j) where (i+j) is divisible by both A & B: 0
स्पष्टीकरण
No such pairs possible.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम पूर्णांक N, M, A, B लेते हैं।
-
फ़ंक्शन sumDivisible(int n,int m,int a,int b) सभी चर लेता है और ए और बी द्वारा विभाजित योग के साथ ऑर्डर किए गए जोड़े की गिनती देता है।
-
जोड़े के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
i और j को खोजने के लिए लूप के लिए दो का उपयोग करके ट्रैवर्स करें।
-
i=1 से i<=n और j=1 से j<=m तक शुरू करें।
-
जांचें कि क्या (i+j)%a==0 या (i+j)%b==0.
-
अगर सही वेतन वृद्धि गिनती है।
-
सभी लूपों के अंत में गिनती में ऐसे जोड़ों की कुल संख्या होगी।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int sumDivisible(int n,int m,int a,int b){ int count = 0; for (int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ if((i+j)%a==0 && (i+j)%b==0) { count++; } } } return count; } int main(){ int N = 50, M = 100, A = 5, B = 10; cout <<"Ordered pairs (i,j) where (i+j) is divisible by both A & B: "<<sumDivisible(N,M,A,B); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Ordered pairs (i,j) where (i+j) is divisible by both A & B: 500