Làm cách nào để kiểm tra xem một số có phải là số nguyên tố trong python bằng cách sử dụng vòng lặp while không?

Số nguyên tố là một số không chia hết cho bất kỳ số nào khác ngoại trừ một số, vì vậy trong bài viết này, chúng tôi sẽ hướng dẫn bạn nhiều cách để bạn có thể kiểm tra xem số đó có phải là số nguyên tố hay không trong python

  1. Theo chức năng do người dùng xác định
  2. Bằng cách sử dụng một biến cờ
  3. Bằng cách sử dụng vòng lặp while

1. Theo chức năng do người dùng xác định

Trong python, chúng ta có thể định nghĩa một hàm bằng cách sử dụng từ khóa def, đây là một lựa chọn tốt để xác định hàm nhằm xác định xem số đó có phải là số nguyên tố hay không vì việc xác định hàm làm tăng khả năng sử dụng của mã

def checkprime[x]:

if x > 1:

for y in range[2, int[x/2] + 1]:

if [x % y] == 0:

print[x, "is not a prime number"]

break

else:

print[x, "is a prime number"]

else:

print[x, "is not a prime number"]

a= int[input["Enter a number = "]]

checkprime[a]

Hình 1. Sử dụng lồng nhau nếu khác

đầu ra

Hình 2. đầu ra

Trong hình 1, đầu tiên chúng ta đã khai báo một hàm checkprime[a] nhận một số làm tham số và kiểm tra xem số đã cho có lớn hơn một hay không. Nếu số đó lớn hơn 1 thì vòng lặp for sẽ được thực hiện để kiểm tra xem ‘x’ có chia hết cho ‘y’ hay không thì ‘x’ có phải là số nguyên tố hay không, ngược lại ‘x’ là số nguyên tố. Nếu số không lớn hơn 1 sẽ chuyển thẳng sang phần khác và in ra 'x' không phải là số nguyên tố như hình 2

2. Bằng cách sử dụng một biến cờ

Trong Python, chúng ta có thể xác minh xem một số có phải là số nguyên tố hay không bằng cách sử dụng biến cờ. Biến cờ có thể có hai giá trị. đúng hay sai

x= int[input["Enter a number = "]]

flag = False

if x > 1:

for y in range[2, x]:

if [x % y] == 0:

flag = True

break

if flag:

print[x, "is not a prime number"]

else:

print[x, "is a prime number"]

Hình 3. Sử dụng biến cờ

đầu ra

hinh 4. đầu ra

Trong ví dụ trên, Người dùng nhập một số và chúng tôi kiểm tra xem số 'x' đã nhập có nhiều hơn một hay không, vì vậy chúng tôi chỉ tiếp tục khi 'x' nhiều hơn một. Nếu 'x' chia hết cho bất kỳ số nào trong phạm vi [2, x], hãy đặt cờ thành True và thoát khỏi vòng lặp nếu tìm thấy thừa số trong phạm vi đó, cho biết số nguyên đó không phải là số nguyên tố, như minh họa trong hình 2. Nếu không, giá trị của cờ sẽ vẫn là Sai, cho biết số đó là số nguyên tố

3. Bằng cách sử dụng vòng lặp while

Số nguyên tố có thể được kiểm tra bằng vòng lặp while

x= int[input["Enter a number greater than 1= "]]

f=0

y=2

while y  1:
for i in range[2, num//2]:
if [num % i] == 0:
print[num, "is not a prime number"]
break
else:
print[num, "is a prime number"]
else:
print[num, "is not a prime number"]

đầu ra. 13 là một số nguyên tố

Phương pháp tối ưu hóa

Có nhiều cách khác nhau để tối ưu hóa chương trình số nguyên tố trong Python

  • Thay vì kiểm tra đến n, chúng ta có thể kiểm tra đến √n vì thừa số lớn hơn của n phải là bội số của thừa số nhỏ hơn đã được kiểm tra
  • Thuật toán có thể được cải thiện hơn nữa bằng cách quan sát rằng tất cả các số nguyên tố đều có dạng 6k ± 1, ngoại trừ 2 và 3. Điều này là do tất cả các số nguyên có thể được biểu diễn dưới dạng [6k + i] đối với một số nguyên k và với i = ?1, 0, 1, 2, 3 hoặc 4; . Vì vậy, một phương pháp hiệu quả hơn là kiểm tra xem n có chia hết cho 2 hay 3 hay không, sau đó kiểm tra tất cả các số có dạng 6k ± 1

Thí dụ

def isPrime[n] :
if [n 

Chủ Đề