কম্পিউটার টিউটোরিয়াল

((n % i) % j) % n সর্বোচ্চ হলে (i, j) জোড়ার গণনা (C++ প্রোগ্রাম)

আমাদের একটি 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 ফলাফল হিসেবে ফেরত দিন।
দক্ষ পদ্ধতি (Efficient Approach)

সর্বোচ্চ অবশিষ্টাংশ 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 ফলাফল হিসেবে ফেরত দিন।
C++ প্রোগ্রাম উদাহরণ (naiভ পদ্ধতি)
#include 
using 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
C++ প্রোগ্রাম উদাহরণ (দক্ষ পদ্ধতি)
#include 
using 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
  1. সি++-এ গুণফল ২-এর ঘাত হয় এমন অনঅর্ডার্ড পেয়ার (i,j) গণনা

  2. C++-এ k এলিমেন্ট বাছাই করা যাতে ন্যূনতম দূরত্ব সর্বাধিক হয়

  3. সর্বনিম্ন x খুঁজে বের করা যাতে (x % k) * (x / k) == n C++-তে

  4. C++ ব্যবহার করে অ্যারেতে a % b = k সেটি করার সব জোড়া (a, b) বের করা