এই টিউটোরিয়ালে আমরা এমন একটি প্রোগ্রাম লিখব যা N-র চেয়ে ছোট বা সমান এবং K-দিয়ে বিভাজ্য সর্বোচ্চ সংখ্যা বের করবে।
অ্যালগরিদম
NএবংKইনিশিয়ালাইজ করুন।- মডুলো অপারেটর দিয়ে রিমেইন্ডার বের করুন:
remainder = N % K। - যদি রিমেইন্ডার ০ হয় →
Nযেই 벌써K-দিয়ে বিভাজ্য, তাইNরিটার্ন করুন। - অন্যথায়
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 = 333 - 3 = 30→ ৩০, ৫-দিয়ে বিভাজ্য এবং ৩৩-র চেয়ে ছোট বা সমান সর্বোচ্চ সংখ্যা।- টাইম কমপ্লেক্সিটি:
O(1)।
এজ কেস
K = 0হলে মডুলো অনির্দিষ্ট → ইনপুট ভ্যালিডেশন যোগ করুন।N < 0হলে C++-এ মডুলো নেগেটিভ হতে পারে → লজিক সামঞ্জস্যপূর্ণ করতে হয়।