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

পাইথনে হ্যাপি নম্বর (Happy Number) যাচাই করার প্রোগ্রাম


মান লো যাক আমাদের একটি সংখ্যা n আছে। আমরা যাচাই করব এটি একটি হ্যাপি নম্বর কিনা। যেনে আছে, হ্যাপি নম্বর হলো একটি সংখ্যা, যেখানে যেকোনো পজিটিভ ইন্টিজার থেকে শুরু করে তার ডিজিটের বর্গের যোগফল দ্বারা সংখ্যাকে প্রতিস্থাপন করুন, এই প্রক্রিয়া को तब तक दोहराया जाएगा जब तक यह 1 नहीं बन जाता, अन्यथा यह अंतहीन रूप से एक चक्र में लूप करेगा। वे संख्याएं, जब 1 मिल जाता है, वे ह्यappy नंबर होंगी।

उदाहरण के लिए, इनपुट 19 है, आउटपुट true होगा क्योंकि संख्या ह्यappy नंबर है। जैसा कि हम 19 से देख सकते हैं, हमें मिलेगा

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • यहां हम डायनामिक प्रोग्रामिंग दृष्टिकोण का उपयोग करेंगे, और रिकर्सन का उपयोग करके इसे हल करेंगे
  • बेस केस है, जब n = 1, तो true वापस करें
  • जब n पहले से विजिटेड है, तो false वापस करें
  • n को विजिटेड के रूप में मार्क करें
  • n := n को स्ट्रिंग के रूप में, l := n में सभी डिजिट की सूची
  • temp := सभी डिजिट का वर्ग योग
  • पैरामीटर temp और विजिटेड सूची के साथ फ़ंक्शन को रिकर्सिवली कॉल करें

বेहतर বোঝার জন্য নিম্নলিখিত বাস্তবায়ন देखুন:

উদাহরণ

class Solution(object):    def isHappy(self, n):       return self.solve(n,{})    def solve(self,n,visited):       if n == 1:          return True       if n in visited:          return False          visited[n]= 1          n = str(n)          l = list(n)          l = list(map(int,l))          temp = 0          for i in l:             temp += (i**2)          return self.solve(temp,visited) ob = Solution() print(ob.isHappy(19))

ইনপুট

19

আউটপুট

True

  1. পাইথনে র‍্যান্ডম নম্বর (Random Numbers)

  2. পাইথনে কমপ্লেক্স নম্বর প্লট করার প্রোগ্রাম

  3. পাইথনে ফ্লোটিং পয়েন্ট সংখ্যা ক্ল্যাম্প (clamp) করার প্রোগ্রাম

  4. পাইথনে সংখ্যা তুলনা করার রিলেশনাল অপারেটর গাইড