আমাদেরকে 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;
আউটপুট
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) সমস্ত ভেরিয়েবল নেয় এবং A এবং 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