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

প্রথম N প্রাকৃতিক সংখ্যা থেকে দুটি সেট গঠন যাতে যোগফলের পার্থক্য D হয় (C++)

এই সমস্যায় দুটি পূর্ণসংখ্যা N এবং D দেওয়া আছে। আমাদের কাজ হলো প্রথম N প্রাকৃতিক সংখ্যাগুলো থেকে দুটি সেট তৈরি করা যাতে তাদের যোগফলের পার্থক্য D হয়।

উদাহরণ

ইনপুট: N = 5, D = 3

আউটপুট: হ্যাঁ

ব্যাখ্যা: 1, 2, 3, 4, 5 সংখ্যাগুলো থেকে set1 = {1, 2, 3} এবং set2 = {4, 5} বানানো যায়। তখন পার্থক্য = (4+5) - (1+2+3) = 9 - 6 = 3।

গাণিতিক সমাধান

প্রথম N প্রাকৃতিক সংখ্যার যোগফল = n(n+1)/2।

দুটি সেটের যোগফল যথাক্রমে sum(s1) এবং sum(s2)।

তবে sum(s1) + sum(s2) = n(n+1)/2

এবং দেওয়া আছে sum(s1) - sum(s2) = D

দুটি সমীকরণ যোগ করলে: 2 × sum(s1) = n(n+1)/2 + D

অতএব, সমাধান সম্ভব হবে যদি এবং কেবল যদি [n(n+1)/2 + D] সম সংখ্যা হয়।

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

#include <iostream>
using namespace std;

bool isSetPossible(int N, int D) {
    int total = (N * (N + 1)) / 2 + D;
    return (total % 2 == 0);
}

int main() {
    int N = 10;
    int D = 7;
    cout << "প্রথম " << N << " প্রাকৃতিক সংখ্যা থেকে পার্থক্য " << D << " সহ দুটি সেট বানানো ";
    isSetPossible(N, D) ? cout << "সম্ভব" : cout << "সম্ভব নয়";
    return 0;
}

আউটপুট

প্রথম 10 প্রাকৃতিক সংখ্যা থেকে পার্থক্য 7 সহ দুটি সেট বানানো সম্ভব
  1. দুটি সম্ভাব্য মান থেকে অন্য মান ভেরিয়েবলে অ্যাসাইন করা C++-এ

  2. C++ প্রোগ্রাম: প্রথম n প্রাকৃতিক সংখ্যার কিউব সমষ্টি

  3. C++-এ প্রথম n প্রাকৃতিক সংখ্যার বর্গের যোগফল (Sum of Squares)

  4. পাইথনে পারমিউটেশন থেকে ম্যাজিক সেটের সংখ্যা বের করা