কম্পিউটার টিউটোরিয়াল

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

এই টিউটোরিয়ালে আমরা প্রাইম নাম্বার খুঁজে বের করার বিভিন্ন পদ্ধতি এবং প্রতিটি পদ্ধতির জন্য প্রয়োজনীয় সময় দেখব। এক্সিকিউশন টাইম ক্যালকুলেট করতে 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

উপসংহার

প্রাইম নাম্বার খুঁজে বের করার তিনটি পদ্ধতির পারফরম্যান্স তুলনা করা গেছে। অন্য কোনো প্রশ্ন থাকলে কমেন্টে জানান।


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

  2. পাইথনে একটি সংখ্যার সর্বোচ্চ质因数 বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: কোনো সংখ্যা প্রাইম কিনা তা যাচাই করা

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