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

जांचें कि क्या पायथन में बड़ी संख्या का कोई क्रमपरिवर्तन 8 से विभाज्य है

मान लीजिए, हमें एक बड़ी संख्या प्रदान की गई है और हमें यह पता लगाना है कि संख्या के अंकों का कोई क्रमचय 8 से विभाज्य है या नहीं। संख्या हमें स्ट्रिंग प्रारूप में प्रदान की जाती है।

इसलिए, यदि इनपुट इस प्रकार है:input_num =4696984, तो आउटपुट "आठ से विभाज्य" होगा।

इस समस्या को हल करने के लिए, हम संख्या के अंकों के साथ सभी तीन अंकों के क्रमपरिवर्तन की जांच करेंगे और देखेंगे कि क्या वे संख्या के किसी भी सभी अंकों के क्रमपरिवर्तन में हो सकते हैं। यदि संख्या के सभी अंकों के क्रमपरिवर्तन के अंत में आठ से विभाज्य तीन अंकों का क्रमपरिवर्तन होता है, तो हम कहेंगे कि क्रमपरिवर्तन 8 से विभाज्य है।

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

  • यदि input_num <3 की लंबाई है, तो
    • यदि input_num mod 8, 0 के समान है, तो
      • सही लौटें
    • input_num :=input_num का उल्टा
    • यदि input_num mod 8, 0 के समान है, तो
      • सही लौटें
    • झूठी वापसी
  • temp_arr :=आकार 10 की एक नई सूची 0 से आरंभ की गई।
  • 0 से लेकर input_num के आकार की गणना के लिए, करें
  • temp_arr[input_num[गिनती] - 0] :=temp_arr[input_num[गिनती] - 0] + 1
  • 104 से 999 तक की संख्या के लिए, 8 की वृद्धि करें
    • अस्थायी:=गिनती
    • अवसरें :=आकार 10 की एक नई सूची 0 से आरंभ की गई।
    • घटनाएं[अस्थायी मोड 10]:=घटनाएं[अस्थायी मोड 10] + 1
    • अस्थायी:=अस्थायी / 10
    • घटनाएं[अस्थायी मोड 10]:=घटनाएं[अस्थायी मोड 10] + 1
    • अस्थायी:=अस्थायी / 10
    • घटनाएं[अस्थायी मोड 10]:=घटनाएं[अस्थायी मोड 10] + 1
    • अस्थायी:=गिनती
    • यदि घटनाएँ होती हैं [अस्थायी मॉड 10]> temp_arr [अस्थायी मॉड 10], तो
      • अगले पुनरावृत्ति के लिए जाएं
    • अस्थायी:=अस्थायी / 10
    • यदि घटनाएँ होती हैं [अस्थायी मॉड 10]> temp_arr [अस्थायी मॉड 10], तो
      • अगले पुनरावृत्ति के लिए जाएं
    • अस्थायी:=अस्थायी / 10
    • यदि घटनाएँ होती हैं [अस्थायी मॉड 10]> temp_arr [अस्थायी मॉड 10], तो
      • अगले पुनरावृत्ति के लिए जाएं
    • सही लौटें
  • झूठी वापसी

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

उदाहरण

def solve(input_num):
   if len(input_num) < 3:
      if int(input_num) % 8 == 0:
         return True
      input_num = input_num[::-1]
      if int(input_num) % 8 == 0:
         return True
      return False
   temp_arr = 10 * [0]
   for count in range(0, len(input_num)):
      temp_arr[int(input_num[count]) - 0] += 1
   for count in range(104, 1000, 8):
      temp = count
      occurences = 10 * [0]
      occurences[int(temp % 10)] += 1
      temp = temp / 10
      occurences[int(temp % 10)] += 1
      temp = temp / 10
      occurences[int(temp % 10)] += 1
      temp = count
      if (occurences[int(temp % 10)] >
         temp_arr[int(temp % 10)]):
         continue
      temp = temp / 10
      if (occurences[int(temp % 10)] >
         temp_arr[int(temp % 10)]):
         continue
      temp = temp / 10
      if (occurences[int(temp % 10)] >
         temp_arr[int(temp % 10)]):
         continue
         return True
      return False
if solve("4696984"):
   print("Divisible by eight")
else:
   print("Not divisible by eight")

इनपुट

4696984

आउटपुट

Divisible by eight

  1. पाइथॉन में जांचें कि कोई बड़ी संख्या 19 से विभाज्य है या नहीं

    मान लीजिए, हमें एक बड़ी संख्या दी गई है और हमें यह जांचना है कि संख्या 19 से विभाज्य है या नहीं। इसलिए, अगर इनपुट 86982 जैसा है, तो आउटपुट विभाज्य होगा। हम इस समस्या को बार-बार जोड़ने की विधि का उपयोग करके हल करेंगे, जहां हम संख्या से अंतिम अंक निकालते हैं, इसे 2 से गुणा करते हैं, और परिणाम को शेष

  1. पाइथॉन में जांचें कि कोई बड़ी संख्या 17 से विभाज्य है या नहीं

    मान लीजिए, हमें एक संख्या दी गई है और हमें यह जांचना है कि संख्या 17 से विभाज्य है या नहीं। इसलिए, यदि इनपुट 99943 की तरह है, तो आउटपुट विभाज्य होगा। हम दोहराई गई घटाव विधि का उपयोग करके इस समस्या को हल करेंगे, जहां हम संख्या का अंतिम अंक निकालते हैं और इसे संख्या से 5 गुना घटाते हैं जब तक कि हमें

  1. जांचें कि कोई संख्या एक अकिलीज़ संख्या है या नहीं, पायथन में

    मान लीजिए हमारे पास एक संख्या n है; हमें जांचना है कि n एक अकिलीज़ संख्या है या नहीं। जैसा कि हम जानते हैं कि एक संख्या एच्लीस संख्या होती है जब एक संख्या शक्तिशाली होती है (एक संख्या एन को शक्तिशाली संख्या कहा जाता है जब इसके प्रत्येक प्रमुख कारक पी के लिए, पी ^ 2 भी इसे विभाजित करता है) लेकिन एक प