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

C++-এ একটি সংখ্যা অন্য সংখ্যার সব প্রাইম ডিভাইজার দিয়ে বিভাজ্য কিনা চেক করা

মনে করুন দুটি সংখ্যা আছে। আমাদের চেক করতে হবে একটি সংখ্যা অন্য সংখ্যার সব প্রাইম ফ্যাক্টর দিয়ে বিভাজ্য কিনা। উদাহরণস্বরূপ, একটি সংখ্যা ১২০। এর প্রাইম ফ্যাক্টর {২, ৩, ৫}। অন্য সংখ্যা ৭৫, এর প্রাইম ফ্যাক্টর {৩, ৫}। ১২০ যেহেতু ৩ এবং ৫ দিয়ে বিভাজ্য, তাই সিদ্ধান্ত হচ্ছে হ্যাঁ।

যদি একটি সংখ্যা ১ হয়, তবে তার কোনো প্রাইম ডিভাইজার নেই, তাই উত্তর True। অন্যথায় দুটি সংখ্যার GCD বের করতে হবে। যদি GCD ১ হয়, তবে তারা কো-প্রাইম, তাই উত্তর false। যদি GCD > ১ হয়, তবে GCD-তে প্রাইম ডিভাইজার থাকে যা x কেও ভাগ করে (x হল প্রথম সংখ্যা)। যদি সব ইউনিক প্রাইম ডিভাইজার থাকে iff দ্বিতীয় সংখ্যা y / GCD-তে এমন ইউনিক প্রাইম ডিভাইজার থাকে। রিকার্শন ব্যবহার করে (x, y/GCD) জোড়ার জন্য ইউনিকনেস চেক করতে হবে।

উদাহরণ কোড

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

bool isDivisible(int a, int b) {
    if (b == 1)
        return true;
    int gcd = __gcd(a, b);
    if (gcd == 1)
        return false;
    return isDivisible(a, b / gcd);
}

int main() {
    int a = 120, b = 75;
    if (isDivisible(a, b))
        cout << a << " can be divisible by all prime factors of " << b;
    else
        cout << a << " can NOT be divisible by all prime factors of " << b;
    return 0;
}

আউটপুট

120 can be divisible by all prime factors of 75
  1. C++ প্রোগ্রাম: বড় সংখ্যা ২, ৩ ও ৫ দিয়ে বিভাজ্য কিনা চেক (স্ট্রিং ইনপুট)

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

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

  4. ফাংশন তৈরি করে প্রাইম নম্বর চেক করার C++ প্রোগ্রাম