এই টিউটোরিয়ালে, আমরা প্রতিটি পদ্ধতির জন্য প্রয়োজনীয় মৌলিক সংখ্যা এবং সময় বের করার বিভিন্ন পদ্ধতি দেখতে যাচ্ছি। আমরা কার্যকর করার সময় গণনা করতে সময় মডিউল ব্যবহার করতে যাচ্ছি।
পদ্ধতি-1
মৌলিক সংখ্যা বের করার এটি একটি সাধারণ পদ্ধতি।
- সংখ্যাটি একের থেকে কম বা সমান হলে, মিথ্যা দিন৷ ৷
- যদি সংখ্যাটি যেকোনো সংখ্যা দ্বারা বিভাজ্য হয়, তাহলে ফাংশনটি False প্রদান করবে।
- লুপের পরে, True ফিরে আসুন।
উদাহরণ
# 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
উপসংহার
টিউটোরিয়াল সম্পর্কে আপনার কোন সন্দেহ থাকলে মন্তব্য বিভাগে উল্লেখ করুন।