আমাদের একটি num সংখ্যা ইনপুট হিসেবে দেওয়া আছে। লক্ষ্য হল (i,j) রূপের জোড়ার সংখ্যা বের করা যেন ((num%i)%j)%num সর্বোচ্চ হয় এবং i ও j উভয় [1,num] পরিসরে থাকে।
ইনপুট: num = 4
আউটপুট: ((n % i) % j) % n সর্বোচ্চ হলে (i, j) জোড়ার গণনা: 3
ব্যাখ্যা: জোড়াগুলো: (3,2), (3,3), (3,4)
ইনপুট: num = 6
আউটপুট: ((n % i) % j) % n সর্বোচ্চ হলে (i, j) জোড়ার গণনা: 4
ব্যাখ্যা: জোড়াগুলো: (4,3), (4,4), (4,5), (4,6)
আমরা এই সমস্যাকে দুটি পদ্ধতিতে সমাধান করব। наиভ পদ্ধতিতে, সর্বোচ্চ অবশিষ্টাংশ পাওয়ার জন্য num-এর অর্ধেক দরকার। temp = num/2 + 1 সেট করুন। সর্বোচ্চ অবশিষ্টাংশ total = num%temp সেট করুন। i,j কে 0 থেকে num পর্যন্ত ট্রভার্স করুন এবং যেসব i,j-এর জন্য ((num % i) % j) % num == total সেটি খুঁজে বের করুন।
- ইনপুট num পূর্ণসংখ্যা হিসেবে নিন।
- maximized_pair(int num) ফাংশন num নেয় এবং ((n % i) % j) % n সর্বোচ্চ হলে (i, j) জোড়ার গণনা ফেরত দেয়।
- আরম্ভিক গণনা ০ নিন।
- num কে অর্ধেক করুন সর্বোচ্চ অবশিষ্টাংশের জন্য। temp = ((num / 2) + 1) সেট করুন।
- সর্বোচ্চ অবশিষ্টাংশ হিসাব করুন total = num % temp।
- জোড়া (i,j) এর জন্য। i এবং j কে [1,num] পরিসরে দুটি for লুপ দিয়ে ট্রভার্স করুন।
- যদি ((num % i) % j) % num মান total-এর সমান হয়, তবে count বাড়ান।
- দুটি for লুপ শেষে count ফলাফল হিসেবে ফেরত দিন।
সর্বোচ্চ অবশিষ্টাংশ total = num % temp পান যেখানে temp = num/2+1। এখন জোড়া (i,j) এর জন্য i কে num বেছে নিতে হবে সর্বোচ্চ অবশিষ্টাংশ পেতে। আমরা j কে total থেকে num পরিসরে বেছে নিতে পারি যেন total সর্বোচ্চ হয়। তাই জোড়ার সংখ্যা হবে num-total।
num=2 হলে, ৪ ফেরত দিন কারণ জোড়াগুলো হবে (1,1), (1,2), (2,1), (2,2) এবং এগুলো num-total দিয়ে হিসাব করা যাবে না।
- ইনপুট num পূর্ণসংখ্যা হিসেবে নিন।
- maximized_pair(int num) ফাংশন num নেয় এবং ((n % i) % j) % n সর্বোচ্চ হলে (i, j) জোড়ার গণনা ফেরত দেয়।
- আরম্ভিক গণনা ০ নিন।
- যদি num==2 হয়, ৪ ফেরত দিন।
- অন্যথায় num কে অর্ধেক করুন সর্বোচ্চ অবশিষ্টাংশের জন্য। temp = ((num / 2) + 1) সেট করুন।
- সর্বোচ্চ অবশিষ্টাংশ হিসাব করুন total = num % temp।
- count = num - total সেট করুন।
- শেষে count ফলাফল হিসেবে ফেরত দিন।
#includeusing namespace std; int maximized_pair(int num) { int count = 0; int temp = ((num / 2) + 1); int total = num % temp; for (int i = 1; i <= num; i++) { for (int j = 1; j <= num; j++) { int check = ((num % i) % j) % num; if (check == total) { count++; } } } return count; } int main() { int num = 10; cout << "Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: " << maximized_pair(num); return 0; }
Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: 6
#includeusing namespace std; int maximized_pair(int num) { int count = 0; if (num == 2) { return 4; } else { int temp = ((num / 2) + 1); int total = num % temp; count = num - total; } return count; } int main() { int num = 10; cout << "Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: " << maximized_pair(num); return 0; }
Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: 6