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