इस ट्यूटोरियल में, हम अभाज्य संख्या खोजने के विभिन्न तरीकों और प्रत्येक विधि के लिए आवश्यक समय को देखेंगे। हम निष्पादन समय की गणना के लिए time मॉड्यूल का उपयोग करेंगे।
विधि-1
यह अभाज्य संख्या खोजने की एक सामान्य विधि है।
- यदि संख्या एक से कम या बराबर है, तो False लौटाएं।
- यदि संख्या किसी संख्या से विभाज्य है, तो फ़ंक्शन False लौटाएगा।
- लूप के बाद, True लौटाएं।
उदाहरण
# time मॉड्यूल आयात करें
import time
# अभाज्य संख्या की जांच
def is_prime(n):
if n <= 1:
return False
else:
for i in range(2, n):
# फैक्टर की जांच
if n % i == 0:
# False लौटाएं
return False
# True लौटाएं
return True
# प्रारंभ समय
start_time = time.time()
primes = 0
for i in range(100000):
if is_prime(i):
primes += 1
print(f'Total primes in the range {primes}')
# समाप्ति समय
end_time = time.time()
print(f'Execution time: {end_time - start_time}')आउटपुट
यदि आप उपरोक्त प्रोग्राम चलाते हैं, तो आपको निम्न परिणाम मिलेंगे।
Total primes in the range 9594 Execution time: 63.1301212310791
विधि-2
इस विधि में, हम पुनरावृत्तियों की संख्या को n के वर्गमूल तक कम करके घटाते हैं।
आइए कोड देखें।
उदाहरण
# time मॉड्यूल आयात करें
import time
# sqrt फ़ंक्शन के लिए math मॉड्यूल आयात करें
import math
# अभाज्य संख्या की जांच
def is_prime(n):
if n <= 1:
return False
else:
# n के वर्गमूल तक लूप पुनरावृति
for i in range(2, int(math.sqrt(n)) + 1):
# फैक्टर की जांच
if n % i == 0:
# False लौटाएं
return False
# True लौटाएं
return True
# प्रारंभ समय
start_time = time.time()
primes = 0
for i in range(100000):
if is_prime(i):
primes += 1
print(f'Total primes in the range {primes}')
# समाप्ति समय
end_time = time.time()
print(f'Execution time: {end_time - start_time}')आउटपुट
यदि आप उपरोक्त प्रोग्राम चलाते हैं, तो आपको निम्न परिणाम मिलेंगे।
Total primes in the range 9592 Execution time: 0.2039644718170166
विधि-3
पिछली विधि में, हमने सम संख्याओं की जांच की है। हम सभी जानते हैं कि दो को छोड़कर सम संख्याएं अभाज्य नहीं हो सकतीं। इसलिए, इस विधि में, हम समय कम करने के लिए सभी सम संख्याओं को हटा देंगे।
उदाहरण
# time मॉड्यूल आयात करें
import time
# sqrt फ़ंक्शन के लिए math मॉड्यूल आयात करें
import math
# अभाज्य संख्या की जांच
def is_prime(n):
# 1 से कम की जांच
if n <= 1:
return False
# 2 की जांच
elif n == 2:
return True
elif n > 2 and n % 2 == 0:
return False
else:
# n के वर्गमूल तक लूप पुनरावृति
for i in range(3, int(math.sqrt(n)) + 1, 2):
# फैक्टर की जांच
if n % i == 0:
# False लौटाएं
return False
# True लौटाएं
return True
# प्रारंभ समय
start_time = time.time()
primes = 0
for i in range(100000):
if is_prime(i):
primes += 1
print(f'Total primes in the range {primes}')
# समाप्ति समय
end_time = time.time()
print(f'Execution time: {end_time - start_time}')आउटपुट
यदि आप उपरोक्त प्रोग्राम चलाते हैं, तो आपको निम्न परिणाम मिलेंगे।
Total primes in the range 9592 Execution time: 0.10342741012573242
निष्कर्ष
यदि ट्यूटोरियल के संबंध में आपके कोई संदेह हैं, तो उन्हें कमेंट सेक्शन में उल्लेख करें।