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

C++-এ A % X = B সমীকরণ সन्तুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা


দুটি ইন্টিজার A এবং B এবং একটি সংখ্যা X দেওয়া আছে। লক্ষ্য হলো X-এর সادات সম্ভাব্য মানগুলোর সংখ্যা বের করা যাতে A % X = B। এই সমীকরণের জন্য যদি A == B হয়, তবে X-এর অসংখ্য মান সম্ভব, তাই -১ রিটার্ন করুন। যদি A < B হয়, তবে কোনো সমাধান নেই, তাই ০ রিটার্ন করুন। যদি A > B হয়, তবে (A-B)-এর ভাজকগুলোর সংখ্যা রিটার্ন করুন।

উদাহরণ ১

ইনপুট

A=5, B=2

আউটপুট

A % X = B সমীকরণ সন্তুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা: 1

ব্যাখ্যা

5%3=2। তাই এখানে X হলো 3।

উদাহরণ ২

ইনপুট

A=10, B=10

আউটপুট

A % X = B সমীকরণ সন্তুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা: -1

ব্যাখ্যা

এখানে A==B তাই অসংখ্য সমাধান আছে, তাই -1 রিটার্ন করা হয়েছে।

প্রয়োগ করা পদ্ধতি

এই পদ্ধতিতে (A-B)-এর ভাজকগুলো for লুপ দিয়ে i=1 থেকে i*i <= (A-B) পর্যন্ত গণনা করা হয়। যদি কোনো i পুরোপুরি (A-B)-কে ভাগ করে, তবে কাউন্ট соответствуюően আপডেট করা হয়।

  • ইনপুট হিসেবে ইন্টিজার A এবং B নিন।

  • যদি A < B হয় তবে ০ প্রিন্ট করুন।

  • যদি A == B হয় তবে -১ প্রিন্ট করুন।

  • A > B হলে possible_values(int A, int B) ফাংশনটি কল করুন।

  • আরম্ভিক কাউন্ট ০ এবং X = A - B নিন।

  • for লুপ দিয়ে i=1 থেকে i*i <= (A-B) পর্যন্ত ট্রুভার্স করুন X-এর ভাজক বের করতে।

  • যদি কোনো i পুরোপুরি X-কে ভাগ করে, তবে temp = i, temp_2 = B - 1 নিন এবং যদি i*i != X হয় তবে temp_2 = X / i সেট করুন।

  • যদি temp > B এবং temp_2 > B হয় তবে কাউন্ট বাড়ান।

  • লুপ শেষে কাউন্ট রিটার্ন করুন ফলাফল হিসেবে।

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

int possible_values(int A, int B) {
    int count = 0; 
    int X = A - B; 
    
    for (int i = 1; i * i <= A - B; i++) {
        if(X % i == 0) {
            int temp = i; 
            int temp_2 = B - 1; 
            if(i * i != X) {
                temp_2 = X / i; 
            } 
            if(temp > B) { count++; } 
            if(temp_2 > B) { count++; } 
        } 
    } 
    
    return count; 
} 

int main() { 
    int A = 15, B = 5; 
    if(A < B) {
        cout << "A % X = B সমীকরণ সন্তুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা: " << 0; 
    } else if(A == B) {
        cout << "A % X = B সমীকরণ সন্তুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা: " << -1; 
    } else {
        cout << "A % X = B সমীকরণ সন্তুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা: " << possible_values(A, B); 
    } 
    return 0; 
}

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি আসবে:

A % X = B সমীকরণ সন্তুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা: 1

  1. C++-এ টার্গেট ভ্যালুgeben এমন সব সম্ভাব্য এক্সপ্রেশন প্রিন্ট করা

  2. ax - by = 0 সমীকরণের ন্যূনতম x এবং y বের করা (C++)

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

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