Computer >> Máy Tính >  >> Lập trình >> Python

Phân tích các phương pháp khác nhau để tìm số nguyên tố trong chương trình Python

Trong hướng dẫn này, chúng ta sẽ xem các phương pháp khác nhau để tìm số nguyên tố và thời gian cần thiết cho mọi phương pháp. Chúng tôi sẽ sử dụng mô-đun thời gian để tính toán thời gian thực hiện.

Phương pháp-1

Đây là một phương pháp chung để tìm số nguyên tố.

  • Nếu số nhỏ hơn hoặc bằng một, hãy trả về Sai.
  • Nếu một số chia hết cho một số bất kỳ thì hàm sẽ trả về giá trị Sai.
  • Sau vòng lặp, trả về True.

Ví dụ

# 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}')

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

Total primes in the range 9594
Execution time: 63.1301212310791

Phương pháp-2

Trong phương pháp này, chúng tôi giảm số lần lặp lại bằng cách cắt chúng thành căn bậc hai của n.

Hãy xem mã.

Ví dụ

# 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}')

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

Total primes in the range 9592
Execution time: 0.2039644718170166

Phương pháp-3

Trong phương pháp trước, chúng tôi đã kiểm tra các số chẵn. Tất cả chúng ta đều biết rằng các số chẵn không thể là số nguyên tố ngoại trừ hai . Vì vậy, trong phương pháp này, chúng tôi sẽ loại bỏ tất cả các lò để giảm thời gian.

Ví dụ

# 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}')

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

Total primes in the range 9592
Execution time: 0.10342741012573242

Kết luận

Nếu bạn có bất kỳ nghi ngờ nào về hướng dẫn, hãy đề cập đến chúng trong phần bình luận.