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

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


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

उदाहरण के लिए, यदि इनपुट n = 1181 है, तो आउटपुट True होगा।

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

दूसरी छवि पहली का उल्टा रूप है और दोनों अभाज्य हैं।

हल करने का तरीका

  1. up_side_down() फ़ंक्शन परिभाषित करें जो n लेता है
  2. अंकों को उल्टा करें: 2 ↔ 5, अन्य वैध अंक (0, 1, 8) वही रहते हैं
  3. मुख्य विधि से:
    • यदि n अभाज्य नहीं है, या up_side_down(n) अभाज्य नहीं है, या n का उल्टा अभाज्य नहीं है, या up_side_down(n) का उल्टा अभाज्य नहीं है, तो False लौटाएं
  4. n के प्रत्येक अंक की जांच करें: यदि कोई अंक [3, 4, 6, 7, 9] में से है, तो False लौटाएं (ये 7-सेगमेंट पर उल्टा वैध नहीं होते)
  5. अन्यथा True लौटाएं

उदाहरण कोड

prime = [True] * (int(1e5) + 5)

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))

इनपुट

1181

आउटपुट

True
  1. पायथन प्रोग्राम: अभाज्य संख्या जांचें पायथन प्रोग्राम: अभाज्य संख्या जांचें

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

  1. - Python प्रोग्राम: जांचें कि कोई संख्या अभाज्य है या नहीं

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

  1. - Python का उपयोग करके किसी संख्या की जांच कैसे करें कि वह अभाज्य (prime) है या नहीं?

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