আমাদের একটি সংখ্যা দেওয়া হয়েছে। লক্ষ্য হল 1 থেকে N পর্যন্ত সংখ্যার জোড়া খুঁজে বের করা যাতে জোড়ার গুণফল জোড়ার যোগফলের সমান হয়।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − N=11
আউটপুট - নং জোড়ার সংখ্যা। 1 থেকে N পর্যন্ত পণ্যের সাথে তাদের যোগফল হল − 1
দ্বারা বিভাজ্যব্যাখ্যা − সংখ্যা 3 এবং 6 এর গুণফল 18 আছে এবং তাদের যোগফল 9 সম্পূর্ণরূপে 18 ভাগ করে।
ইনপুট − N=30
আউটপুট - নং জোড়ার সংখ্যা। 1 থেকে N পর্যন্ত গুণফলের সাথে তাদের যোগফল হল − 12
দ্বারা বিভাজ্যব্যাখ্যা − জোড়া হল − (3, 6), (4,12), (5, 20), (6, 12), (6, 30), (8, 24), (9, 18), (10, 15) ), (12, 24), (15, 30), (20, 30), (21, 28)
জোড়ার সংখ্যা − 12
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
আমরা দুবার FOR লুপ ব্যবহার করে 1 থেকে N পর্যন্ত অতিক্রম করব। প্রত্যেকের জন্য, আমি j অনুসন্ধান করি যাতে (i,j) এর গুণফল যোগফল i+j দ্বারা বিভাজ্য হয়। suc i,j জোড়ার জন্য বৃদ্ধির সংখ্যা যেমন i!=j.
-
ইনপুট হিসাবে একটি সংখ্যা N নিন।
-
ফাংশন Sum_N(N) N নেয় এবং জোড়ার গণনা প্রদান করে যাতে সংখ্যার গুণফলটি সংখ্যার যোগফল দ্বারা বিভাজ্য হয়।
-
i=1 থেকে i
এ যাত্রা করুন -
j=i+1 থেকে j<=N.
পর্যন্ত ট্রাভার্স -
0 হিসাবে প্রাথমিক গণনা নিন।
-
প্রতিটি i এবং j এর জন্য temp=(i*j)%(i+j) হিসাব করুন।
-
যদি তাপমাত্রা 0 হয় তাহলে যোগফল গুণফলকে সম্পূর্ণভাবে ভাগ করে। সংখ্যা বৃদ্ধি।
-
সমস্ত পুনরাবৃত্তি শেষ হওয়ার পরে, গণনায় এই ধরনের জোড়ার মোট সংখ্যা থাকবে।
-
ফলাফল হিসাবে রিটার্ন গণনা।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int Sum_N(int N){ int count = 0; for (int i = 1; i < N; i++){ for (int j = i + 1; j <= N; j++){ int temp = (j * i) % (j + i); if (!temp){ count++; } } } return count; } int main(){ int N = 20; cout<<"Count of pairs of numbers from 1 to N with Product divisible by their Sum are: "<<Sum_N(N); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of pairs of numbers from 1 to N with Product divisible by their Sum are: 6