हमें चर N, M, A और B दिए गए हैं। लक्ष्य धनात्मक संख्याओं के क्रमित जोड़े (i, j) ढूंढना है जैसे कि उनका योग A और B दोनों से विभाज्य हो। और 1<=i<=N और 1<=j<=M।
हम i और j के लिए दो लूप का उपयोग करके पार करेंगे। यदि योग (i+j)%A==0 && (i+j)%B==0। काउंट बढ़ाएं।
उदाहरण से समझते हैं
इनपुट
N = 5, M = 10, A = 2, B = 3;
आउटपुट
क्रमित जोड़े (i,j) जहां (i+j) A और B दोनों से विभाज्य है: 9
व्याख्या
जोड़े होंगे (1,5) (2,4) (2,10) (3,3) (3,9) (4,2) (4,8) (5,1) (5,7)। कुल जोड़े 9 हैं।
इनपुट
N = 10, M = 10, A = 10, B = 11;
आउटपुट
क्रमित जोड़े (i,j) जहां (i+j) A और B दोनों से विभाज्य है: 0
व्याख्या
ऐसे कोई जोड़े संभव नहीं हैं।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम पूर्णांक N, M, A, B लेते हैं।
फ़ंक्शन sumDivisible(int n,int m,int a,int b) सभी चर लेता है और योग A और B से विभाज्य होने वाले क्रमित जोड़े की संख्या लौटाता है।
प्रारंभिक चर count को 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 <<"क्रमित जोड़े (i,j) जहां (i+j) A और B दोनों से विभाज्य है: "<<sumDivisible(N,M,A,B); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
क्रमित जोड़े (i,j) जहां (i+j) A और B दोनों से विभाज्य है: 500