Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

जांचें कि क्या किसी संख्या का कोई क्रमचय 3 से विभाज्य है और पायथन में पालिंड्रोमिक है

मान लीजिए, हमें एक बड़ी धनात्मक पूर्णांक संख्या N प्रदान की गई है। हमें यह जांचना है कि क्या हम किसी संख्या को उसके अंकों के क्रमपरिवर्तन से ज्ञात कर सकते हैं; ऐसा है कि क्रमपरिवर्तन इसके विपरीत रूप के बराबर है, यानी इसका पैलिंड्रोम, और 3 से भी विभाज्य है।

उदाहरण के लिए, मान लीजिए कि हमारे पास संख्या 132213 है। यदि हम संख्या के अंकों से क्रमपरिवर्तन की जाँच करते हैं, तो हमें 123321 मिलता है जो एक पैलिंड्रोम है और 3 से भी विभाज्य है। हमें यह जाँचना है कि इनपुट संख्या से कोई क्रमपरिवर्तन संभव है या नहीं। उपरोक्त शर्तों को पूरा करें।

इसलिए, यदि इनपुट इस प्रकार है:input_num =132213, तो आउटपुट "एक या अधिक क्रमपरिवर्तन एक पैलिंड्रोम है और तीन से विभाज्य है" होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • digit_array :=आकार 10 की एक नई सूची 0s के साथ आरंभ की गई
  • इनपुट_सम:=0
  • जबकि input_num शून्य नहीं है, करें
    • input_sum :=input_sum + (input_num mod 10)
    • digit_array[input_num mod 10]:=digit_array[input_num mod 10] + 1
    • input_num :=का न्यूनतम मान (input_num / 10)
  • यदि input_sum mod 3 0 के समान नहीं है, तो
    • झूठी वापसी
  • index_odd :=0
  • 0 से 9 की श्रेणी में i के लिए, करें
    • यदि digit_array[i] mod 2 0 के समान नहीं है, तो
      • index_odd :=index_odd + 1
  • अगर index_odd> 1, तो
    • वापसी "कोई क्रमपरिवर्तन पैलिंड्रोम नहीं है और तीन से विभाज्य है"
  • अन्यथा,
    • वापसी "एक या अधिक क्रमपरिवर्तन एक पैलिंड्रोम है और तीन से विभाज्य है"

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

def solve(input_num):
   digit_array = [0] * 10
   input_sum = 0
   while (input_num) :
      input_sum += input_num % 10 digit_array[input_num % 10] += 1
      input_num //= 10
   if (input_sum % 3 != 0):
      return False
   index_odd = 0
   for i in range(10) :
      if (digit_array[i] % 2 != 0):
         index_odd += 1
   if (index_odd > 1):
      return "No permutation is a palindrome and is divisible by three"
   else:
      return "One or more permutation is a palindrome and is divisible by three"
input_num = 132213
print(solve(input_num))

इनपुट

132213

आउटपुट

One or more permutation is a palindrome and is divisible by three

  1. प्राइम नंबर चेक करने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक नंबर दिया गया है, हमें यह जांचना होगा कि दी गई संख्या एक अभाज्य संख्या है या नहीं। 1 से बड़ी दी गई धनात्मक संख्या जिसका 1 के अलावा कोई अन्य गुणनखंड नहीं है और संख्या ही अभाज्य संख्या कहलाती है। 2, 3, 5, 7, आ

  1. आर्मस्ट्रांग नंबर की जांच के लिए पायथन प्रोग्राम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक पूर्णांक n दिया गया है, हमें यह जांचना होगा कि दिया गया पूर्णांक एक आर्मस्ट्रांग संख्या है। एक धनात्मक पूर्णांक को आर्मस्ट्रांग क्रमांक n कहा जाता है यदि abcd... = a^n + b^n + c^n + d^n + &hel

  1. पायथन में क्रमपरिवर्तन और संयोजन?

    इस खंड में, हम यह जानने जा रहे हैं कि पायथन प्रोग्रामिंग भाषा का उपयोग करके किसी दिए गए अनुक्रम के क्रमपरिवर्तन और संयोजन को कैसे खोजा जाए। अन्य प्रोग्रामिंग भाषा की तुलना में अजगर का एक प्रमुख लाभ यह है कि यह इसके साथ पुस्तकालयों के विशाल सेट के साथ आता है। हम दिए गए अनुक्रम के क्रमपरिवर्तन और सं