এই টিউটোরিয়ালে, আমরা Collatz Conjecture বাস্তবায়নের জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব।
এর জন্য, আমাদের একটি সংখ্যা n দেওয়া হবে এবং আমাদের খুঁজে বের করতে হবে যে এটি দুটি অপারেশন ব্যবহার করে 1 এ রূপান্তর করা যায় কিনা −
-
যদি n জোড় হয়, n n/2 এ রূপান্তরিত হয়।
-
যদি n বিজোড় হয়, n রূপান্তরিত হয় 3*n + 1।
উদাহরণ
#include<bits/stdc++.h> using namespace std; //checking if n reaches to 1 or not bool check1(int n, unordered_set<int> &s){ if (n == 1) return true; if (s.find(n) != s.end()) return false; return (n % 2)? check1(3*n + 1, s) : check1(n/2, s); } bool if_one(int n){ unordered_set<int> s; return check1(n, s); } int main(){ int n = 234; if_one(n) ? cout << "Yes" : cout <<"No"; return 0; }
আউটপুট
Yes