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

C++-এ বড় K-অঙ্কের সংখ্যা যা X দ্বারা বিভাজ্য (Largest K digit number divisible by X)


এই সমস্যায় আমরা সবচেয়ে বড় K-অঙ্কের সংখ্যা খুঁজে বের করার চেষ্টা করব যা X দ্বারা বিভাজ্য। এই কাজ করতে আমরা ((10^k) - 1) ফর্মুলা দিয়ে সবচেয়ে বড় K-অঙ্কের সংখ্যা নিব। তারপর চেক করব সংখ্যাটি X দ্বারা বিভাজ্য কিনা, যদি না হয়, তবে নিচের ফর্মুলা দিয়ে সঠিক সংখ্যা বের করব।

max - (max mod X)

একটি উদাহরণ: ৫-অঙ্কের সংখ্যা যা ২৯ দ্বারা বিভাজ্য। সবচেয়ে বড় ৫-অঙ্কের সংখ্যা 99999। এটি ২৯ দ্বারা বিভাজ্য নয়। এখন ফর্মুলা প্রয়োগ করলে পাব:

99999 - (99999 mod 29) = 99999 - 7 = 99992

সংখ্যা 99992, ২৯ দ্বারা বিভাজ্য।

অ্যালগরিদম

maxKDigit(k, x)

begin
    max = (10^k) - 1
    if max is divisible by x, return max
    otherwise return max - (max mod x)
end

উদাহরণ

#include<iostream>
#include<cmath>
using namespace std;
long max_k_digit(int k, int x){
    // k-অঙ্কের সর্বোচ্চ সংখ্যা পান
    int max = pow(10, k) - 1;
    if(max % x == 0){
        return max;
    }
    return (max) - (max % x);
}
main() {
    int k, x;
    cout << "Enter Digit Count(K) and Divisor(N): ";
    cin >> k >> x;
    cout << "Result is: " << max_k_digit(k, x);
}

আউটপুট

Enter Digit Count(K) and Divisor(N): 5 29 Result is: 99992


আউটপুট

Enter Digit Count(K) and Divisor(N): 6 87 Result is: 999978

  1. C++ প্রোগ্রাম: হেক্সাডেসিমেল থেকে ডেসিমেল কনভার্সন

  2. C++-এ ডেসিমেল থেকে হেক্সাডেসিমেল কনভার্সন প্রোগ্রাম

  3. C++-এ ডেসিমেল থেকে বাইনারি কনভার্সন প্রোগ্রাম

  4. পাইথনে X দিয়ে বিভাজ্য সবচেয়ে ছোট K-ডিজিট নম্বর বের করা