কম্পিউটার

C++ এ D হিসাবে যোগফলের প্রথম N প্রাকৃতিক সংখ্যার পার্থক্য থেকে সম্ভাব্য দুটি সেট


এই সমস্যায়, আমাদের দুটি পূর্ণসংখ্যা N এবং D দেওয়া হয়েছে। আমাদের কাজ হল D-এর পার্থক্য আছে এমন প্রথম N প্রাকৃতিক সংখ্যাগুলির সেট থেকে সেট করা সম্ভব কিনা তা পরীক্ষা করা।

সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,

ইনপুট − N=5 D =3

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

ব্যাখ্যা

Out of 1, 2, 3, 4, 5.
We can have two sets set1= {1, 2, 3} and set2 = {4, 5}, this will give difference 3.
{4+5} - {1+2+3} = 9- 6 = 3

এই সমস্যা সমাধানের জন্য, আমাদের কিছু গাণিতিক হিসাব থাকবে।

আমরা জানি, সমস্ত সংখ্যার যোগফল হল দুটি সেটের উপাদানের যোগফল,

n প্রাকৃতিক সংখ্যা সূত্রের যোগফল,

sum(s1) + sum(s2) = (n*(n+1))/2. Given in the problem, sum(s1) - sum(s2) = D

উভয় যোগ করলে আমরা পাই,

2*sum(s1) = ((n*(n+1))/2) + D

যদি এই শর্তটি সত্য হয়, তবে শুধুমাত্র একটি সমাধান সম্ভব।

উদাহরণ

আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,

#include <iostream>
using namespace std;
bool isSetPossible(int N, int D) {
   int set = (N * (N + 1)) / 2 + D;
   return (set % 2 == 0);
}
int main() {
   int N = 10;
   int D = 7;
   cout<<"Creating two set from first "<<N<<" natural number with difference "<<D<<" is ";
   isSetPossible(N, D)?cout<<"possible":cout<<"not possible";
   return 0;
}

আউটপুট

Creating two set from first 10 natural number with difference 7 is possible

  1. C++ এ দুটি সম্ভাব্য মান থেকে একটি ভেরিয়েবলে অন্য মান বরাদ্দ করুন

  2. প্রথম n প্রাকৃতিক সংখ্যার ঘনক্ষেত্রের যোগফলের জন্য C++ প্রোগ্রাম?

  3. প্রথম n প্রাকৃতিক সংখ্যার বর্গের সমষ্টির জন্য C++ প্রোগ্রাম?

  4. পাইথনে প্রথম n প্রাকৃতিক সংখ্যার পারমুটেশন থেকে ম্যাজিক সেটের সংখ্যা খুঁজে বের করার প্রোগ্রাম