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

C++-এ N-র চেয়ে ছোট বা সমান এবং K-দিয়ে বিভাজ্য সর্বোচ্চ সংখ্যা

এই টিউটোরিয়ালে আমরা এমন একটি প্রোগ্রাম লিখব যা N-র চেয়ে ছোট বা সমান এবং K-দিয়ে বিভাজ্য সর্বোচ্চ সংখ্যা বের করবে।

অ্যালগরিদম

  1. N এবং K ইনিশিয়ালাইজ করুন।
  2. মডুলো অপারেটর দিয়ে রিমেইন্ডার বের করুন: remainder = N % K।
  3. যদি রিমেইন্ডার ০ হয় → N যেই 벌써 K-দিয়ে বিভাজ্য, তাই N রিটার্ন করুন।
  4. অন্যথায় N - remainder রিটার্ন করুন (এটি K-দিয়ে বিভাজ্য এবং N-এর চেয়ে ছোট)।

C++ প্রোগ্রাম

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

int findLargerNumber(int n, int k) {
    int remainder = n % k;
    if (remainder == 0) return n;
    return n - remainder;
}

int main() {
    int n = 33, k = 5;
    cout << findLargerNumber(n, k) << endl;
    return 0;
}

আউটপুট

30

ব্যাখ্যা

  • 33 % 5 = 3
  • 33 - 3 = 30 → ৩০, ৫-দিয়ে বিভাজ্য এবং ৩৩-র চেয়ে ছোট বা সমান সর্বোচ্চ সংখ্যা।
  • টাইম কমপ্লেক্সিটি: O(1)।

এজ কেস

  • K = 0 হলে মডুলো অনির্দিষ্ট → ইনপুট ভ্যালিডেশন যোগ করুন।
  • N < 0 হলে C++-এ মডুলো নেগেটিভ হতে পারে → লজিক সামঞ্জস্যপূর্ণ করতে হয়।
  1. C++-এ একটি সংখ্যা ২৩ দ্বারা বিভাজ্য কিনা তা যাচাই করা

  2. C++ প্রোগ্রাম: বড় সংখ্যা ২০ দিয়ে বিভাজ্য কিনা চেক (স্ট্রিং ইনপুট)

  3. K ডিজিটের সর্বোচ্চ সংখ্যা যা X দিয়ে বিভাজ্য (C++)

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