इस ट्यूटोरियल में, हम प्रत्येक विधि के लिए आवश्यक अभाज्य संख्याएँ और समय ज्ञात करने के लिए विभिन्न विधियों को देखने जा रहे हैं। हम निष्पादन समय की गणना करने के लिए समय मॉड्यूल का उपयोग करने जा रहे हैं।
विधि-1
यह अभाज्य संख्याओं को खोजने का एक सामान्य तरीका है।
- यदि संख्या एक से कम या उसके बराबर है, तो झूठी वापसी करें।
- यदि संख्या किसी भी संख्या से विभाज्य है, तो फलन गलत होगा।
- लूप के बाद, सही लौटें।
उदाहरण
# importing time module
import time
# checking for prime
def is_prime(n):
if n <= 1:
return False
else:
for i in range(2, n):
# checking for factor
if n % i == 0:
# return False
return False
# returning True
return True
# starting time
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}')
# ending time
end_time = time.time()
print(f'Execution time: {end_time - start_time}') आउटपुट
यदि आप उपरोक्त कार्यक्रम चलाते हैं, तो आपको निम्नलिखित परिणाम प्राप्त होंगे।
Total primes in the range 9594 Execution time: 63.1301212310791
विधि-2
इस विधि में, हम पुनरावृत्तियों की संख्या को n के वर्गमूल में काटकर कम कर रहे हैं।
आइए कोड देखें।
उदाहरण
# importing time module
import time
# importing math module for sqrt function
import math
# checking for prime
def is_prime(n):
if n <= 1:
return False
else:
# iterating loop till square root of n
for i in range(2, int(math.sqrt(n)) + 1):
# checking for factor
if n % i == 0:
# return False
return False
# returning True
return True
# starting time
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}')
# ending time
end_time = time.time()
print(f'Execution time: {end_time - start_time}') आउटपुट
यदि आप उपरोक्त कार्यक्रम चलाते हैं, तो आपको निम्नलिखित परिणाम प्राप्त होंगे।
Total primes in the range 9592 Execution time: 0.2039644718170166
विधि-3
पिछली विधि में, हमने सम संख्याओं की जाँच की है। हम सभी जानते हैं कि दो . को छोड़कर सम संख्याएं अभाज्य नहीं हो सकतीं . तो, इस विधि में, हम समय कम करने के लिए सभी शाम को हटा देंगे।
उदाहरण
# importing time module
import time
# importing math module for sqrt function
import math
# checking for prime
def is_prime(n):
# checking for less than 1
if n <= 1:
return False
# checking for 2
elif n == 2:
return True
elif n > 2 and n % 2 == 0:
return False
else:
# iterating loop till square root of n
for i in range(3, int(math.sqrt(n)) + 1, 2):
# checking for factor
if n % i == 0:
# return False
return False
# returning True
return True
# starting time
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}')
# ending time
end_time = time.time()
print(f'Execution time: {end_time - start_time}') आउटपुट
यदि आप उपरोक्त कार्यक्रम चलाते हैं, तो आपको निम्नलिखित परिणाम प्राप्त होंगे।
Total primes in the range 9592 Execution time: 0.10342741012573242
निष्कर्ष
यदि आपको ट्यूटोरियल के बारे में कोई संदेह है, तो टिप्पणी अनुभाग में उनका उल्लेख करें।