কম্পিউটার

পাইথন প্রোগ্রামে প্রাইম নম্বর খোঁজার জন্য বিভিন্ন পদ্ধতির বিশ্লেষণ


এই টিউটোরিয়ালে, আমরা প্রতিটি পদ্ধতির জন্য প্রয়োজনীয় মৌলিক সংখ্যা এবং সময় বের করার বিভিন্ন পদ্ধতি দেখতে যাচ্ছি। আমরা কার্যকর করার সময় গণনা করতে সময় মডিউল ব্যবহার করতে যাচ্ছি।

পদ্ধতি-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

উপসংহার

টিউটোরিয়াল সম্পর্কে আপনার কোন সন্দেহ থাকলে মন্তব্য বিভাগে উল্লেখ করুন।


  1. প্রাইম নম্বর চেক করতে পাইথন প্রোগ্রাম

  2. একটি সংখ্যার বৃহত্তম মৌলিক ফ্যাক্টর খুঁজে বের করার জন্য পাইথন প্রোগ্রাম

  3. একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. পাইথনে প্রাইম নম্বর খোঁজার বিভিন্ন পদ্ধতি