এই টিউটোরিয়ালে আমরা প্রাইম নাম্বার খুঁজে বের করার বিভিন্ন পদ্ধতি এবং প্রতিটি পদ্ধতির জন্য প্রয়োজনীয় সময় দেখব। এক্সিকিউশন টাইম ক্যালকুলেট করতে time মডিউল ব্যবহার করা হবে।
পদ্ধতি-১: সাধারণ পদ্ধতি
এটি প্রাইম নাম্বার খুঁজে বের করার সাধারণ পদ্ধতি।
- সংখ্যা ১ বা তার চেয়ে ছোট হলে 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:
return False
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
পদ্ধতি-২: স্কোয়ার রুট পর্যন্ত লুপ কমিয়ে দেওয়া
এই পদ্ধতিতে ইটারেশন কমাতে স্কোয়ার রুট পর্যন্ত লুপ চালানো হয়েছে।
উদাহরণ
import time
import math
def is_prime(n):
if n <= 1:
return False
else:
# লুপ স্কোয়ার রুট পর্যন্ত
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
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
পদ্ধতি-৩: জোড় সংখ্যা বাদ দেওয়া
২ বাদে সব জোড় সংখ্যা প্রাইম নয়, তাই জোড় সংখ্যা বাদ দিয়ে টাইম কমানো যায়।
উদাহরণ
import time
import math
def is_prime(n):
if n <= 1:
return False
elif n == 2:
return True
elif n > 2 and n % 2 == 0:
return False
else:
# ৩ থেকে স্কোয়ার রুট পর্যন্ত ২ ধাপে লুপ
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
return False
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
উপসংহার
প্রাইম নাম্বার খুঁজে বের করার তিনটি পদ্ধতির পারফরম্যান্স তুলনা করা গেছে। অন্য কোনো প্রশ্ন থাকলে কমেন্টে জানান।