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

जांचें कि क्या N एक डायहेड्रल प्राइम नंबर है या नहीं पायथन में

मान लीजिए कि हमारे पास एक संख्या n है। हमें जांचना है कि n डायहेड्रल प्राइम है या नहीं। एक संख्या को डायहेड्रल प्राइम कहा जाता है जब वह संख्या स्वयं अभाज्य होती है और 7-सेगमेंट डिस्प्ले का उपयोग करके समान संख्या या कोई अन्य अभाज्य संख्या भी दिखाई जाती है, भले ही डिस्प्ले का ओरिएंटेशन (सामान्य या ऊपर की ओर) कुछ भी हो।

इसलिए, यदि इनपुट n =1181 जैसा है, तो आउटपुट सही होगा

जांचें कि क्या N एक डायहेड्रल प्राइम नंबर है या नहीं पायथन में

दूसरा वाला पहले वाले का अप-साइड डाउन फॉर्मेट है और दोनों प्राइम हैं।

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

  • एक फ़ंक्शन को परिभाषित करें up_side_down() । इसमें n
  • . लगेगा
  • अस्थायी:=n, कुल:=0
  • अस्थायी होने पर> 0, करते हैं
    • d :=अस्थायी मॉड 10
    • यदि d 2 के समान है, तो d :=5
    • अन्यथा जब d, 5 के समान हो, तो d :=2
    • कुल:=कुल * 10 + घ
    • अस्थायी:=(अस्थायी/10) का भागफल
  • कुल वापसी
  • मुख्य विधि से निम्न कार्य करें:
  • यदि n अभाज्य नहीं है या up_side_down(n) अभाज्य नहीं है या n का उल्टा अभाज्य नहीं है या up_side_down(n) का उल्टा अभाज्य नहीं है, तो
    • झूठी वापसी
  • अस्थायी:=n
  • अस्थायी होने पर> 0, करते हैं
    • रेम:=अस्थायी मोड 10
    • यदि रेम इनमें से कोई है [3, 4, 6, 7, 9], तो
      • झूठी वापसी
    • अस्थायी:=(अस्थायी/10) का भागफल
  • सही लौटें

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

उदाहरण कोड

prime = (int(1e5)+5)*[True]
def reverse(n):
   return int(str(n)[::-1])
 
def up_side_down(n):
   temp = n
   total = 0
   while temp>0:
      d = temp % 10
      if d == 2:
         d = 5
      elif d == 5:
         d = 2
      total = total * 10 + d
      temp//= 10
 
   return total
 
def get_all_prime():
   prime[0] = prime[1] = False
 
   for i in range(2, int(1e5)+1):
      j = 2
      while i * j<= int(1e5):
         prime[i * j] = False
         j+= 1
 
def solve(n):
   get_all_prime()
   if not prime[n] or not prime[up_side_down(n)] or not prime[reverse(n)] or not prime[reverse(up_side_down(n))]:
      return False
 
   temp = n
 
   while temp>0:
      rem = temp % 10;
      if rem in [3, 4, 6, 7, 9]:
         return False
      temp //= 10
 
   return True

n = 1181
print(solve(n))

इनपुट

23, 3

आउटपुट

True

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

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

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

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

  1. कैसे जांचें कि कोई संख्या प्राइम है या पायथन का उपयोग नहीं कर रही है?

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