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

n-এর পারমিউটেশন খুঁজে বের করা যেটি ৩ দিয়ে বিভাজ্য কিন্তু ৬ দিয়ে বিভাজ্য নয় C++-তে


মনে করুন আমাদের একটি সংখ্যা n আছে, এবং আমাদের এই সংখ্যার পারমিউটেশন বের করতে হবে, যা ৩ দিয়ে বিভাজ্য কিন্তু ৬ দিয়ে বিভাজ্য নয়। যদি এমন কোনো মান তৈরি করা না যায়, তবে -1 রিটার্ন করুন। উদাহরণস্বরূপ, যদি n হয় 336, তবে আউটপুট হতে পারে 363।

আমরা জানি একটি সংখ্যা ৬ দিয়ে বিভাজ্য মানে সেটি ৩ এবং ২ দিয়ে বিভাজ্য। তাই প্রতিটি জোড় সংখ্যা যা ৩ দিয়ে বিভাজ্য, সেটি ৬ দিয়ে বিভাজ্য হবে। যদি আমরা একটি সংখ্যার অঙ্কগুলো ইন্টারচেঞ্জ করি যা ৩ দিয়ে বিভাজ্য এবং জোড়, সেটিকে বিজোড় করার জন্য, তবে সেটিই ফলাফল হবে।

উদাহরণ

#include <iostream>
#include <cmath>
using namespace std;

int findNumber(int n) {
    int digit_count = ceil(log10(n));
    for (int i = 0; i < digit_count; i++) {
        if (n % 2 != 0) {
            return n;
        } else {
            n = (n / 10) + (n % 10) * pow(10, digit_count - i - 1);
            continue;
        }
    }
    return -1;
}

int main() {
    int n = 132;
    cout << "The permutation of " << n << " that is divisible by 3 but not by 6 is: " << findNumber(n);
}

আউটপুট

The permutation of 132 that is divisible by 3 but not by 6 is: 213

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

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

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

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