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

पायथन में N से कम सभी ट्रंकेटेबल अभाज्य संख्याओं का योग खोजें


मान लीजिए हमारे पास एक दिया गया पूर्णांक N है। हमें N से कम सभी ट्रंकेटेबल अभाज्य संख्याओं का योग ढूंढना है। जैसा कि हम जानते हैं, ट्रंकेटेबल अभाज्य संख्या वह संख्या है जो लेफ्ट-ट्रंकेटेबल अभाज्य (यदि अग्रणी "बायां" अंक क्रमिक रूप से हटाया जाए, तो सभी परिणामी संख्याएं अभाज्य मानी जाती हैं) और राइट-ट्रंकेटेबल अभाज्य (यदि अंतिम "दायां" अंक क्रमिक रूप से हटाया जाए, तो सभी परिणामी संख्याएं अभाज्य मानी जाती हैं) दोनों होती है। ट्रंकेटेबल अभाज्य का एक उदाहरण 9137 है क्योंकि यह लेफ्ट-ट्रंकेटेबल अभाज्य है: 9137, 137, 37 और 7 सभी अभाज्य हैं। इसलिए 9137 एक ट्रंकेटेबल अभाज्य है।

इसलिए, यदि इनपुट N = 55 है, तो आउटपुट 130 होगा क्योंकि (2 + 3 + 5 + 7 + 23 + 37 + 53) = 130।

समाधान दृष्टिकोण

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

  • N := 1000005
  • prime := [True] * N
  • sieve() फ़ंक्शन परिभाषित करें:
    • prime[1] := False, prime[0] := False
    • i को 2 से N-1 तक के लिए:
      • यदि prime[i] == True:
        • j को i*2 से N-1 तक i चरण में: prime[j] := False
  • मुख्य विधि से:
    • sum := 0
    • i को 2 से n-1 तक के लिए:
      • current := i
      • f := True
      • जब तक current != 0:
        • यदि prime[current] == False, तो f := False, ब्रेक करें।
        • current := current // 10
      • current := i
      • power := 10
      • जब तक current // power != 0:
        • यदि prime[current % power] == False, तो f := False, ब्रेक करें।
        • power := power * 10
      • यदि f == True, तो sum := sum + i
    • sum लौटाएं।

उदाहरण

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

N = 1000005
prime = [True for i in range(N)]

def sieve():
    prime[1] = False
    prime[0] = False
    for i in range(2, N):
        if prime[i] == True:
            for j in range(i * 2, N, i):
                prime[j] = False

def get_total_of_trunc_primes(n):
    total = 0
    for i in range(2, n):
        current = i
        f = True
        while current:
            if prime[current] == False:
                f = False
                break
            current //= 10
        current = i
        power = 10
        while current // power:
            if prime[current % power] == False:
                f = False
                break
            power *= 10
        if f:
            total += i
    return total

n = 55
sieve()
print(get_total_of_trunc_primes(n))

इनपुट

55

आउटपुट

130
  1. Python में ट्री के सभी एलिमेंट का योग खोजने का प्रोग्राम Python में ट्री के सभी एलिमेंट का योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास कुछ मानों वाला एक बाइनरी ट्री है, हमें ट्री में सभी मानों का योग ढूंढना है। तो, यदि इनपुट इस तरह है तो आउटपुट 14 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: recurse() फ़ंक्शन परिभाषित करें। यह node लेगा val := node का मान यदि node का बाएं null नहीं है, तो val := va

  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे का योग निकालने की आवश्यकता है। पूरे ऐरे को पार करने और प्रत्येक इंडेक्स पर तत्व को जोड़कर योग प्राप्त करने का ब्रूट-फोर्स दृष्टिकोण नीचे चर्चा किया गया है। उदाहरण # sum फ़ंक्शन def

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें दिए गए ऐरे का योग निकालने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का पालन कर सकते हैं यानी एक लिस्ट को ट्रैवर्स करना और प्रत्येक एलिमें