Hướng dẫn how do you check if a number is prime in python without loop? - làm thế nào để bạn kiểm tra xem một số có phải là số nguyên tố trong python không mà không có vòng lặp?
Hướng dẫn này sẽ dạy bạn cách viết chương trình Python để kiểm tra xem một số có chính hay không.number is prime or not. Show
Nếu bạn đã từng thực hiện các bài kiểm tra mã hóa, bạn sẽ bắt gặp câu hỏi toán học trong bài kiểm tra về tính nguyên thủy hoặc để kiểm tra xem một số là số nguyên tố. Và trong vài phút tiếp theo, bạn sẽ học cách đưa ra giải pháp tối ưu cho câu hỏi này. Trong hướng dẫn này, bạn sẽ:
Đối với tất cả điều này và hơn thế nữa, hãy để bắt đầu. Một số nguyên tố là gì?Hãy bắt đầu bằng cách xem xét những điều cơ bản của số nguyên tố.
Bảng sau đây liệt kê một vài con số, tất cả các yếu tố của chúng và nếu chúng là nguyên tố.
1, 2
1, 7 1, 3, 5, 15 Từ bảng trên, chúng ta có thể viết ra như sau:2 là số nguyên tố nhỏ nhất. 1 là một yếu tố của mỗi số.
Vì vậy, 1 và N là yếu tố tầm thường cho bất kỳ số n. Và một số nguyên tố không nên có bất kỳ yếu tố nào khác ngoài hai yếu tố này. Điều này có nghĩa là khi bạn đi từ 2 đến N-1, bạn không thể tìm thấy một yếu tố không tầm thường phân chia N mà không có phần còn lại.
Bạn có thể lặp qua tất cả các số từ 2 đến N - 1 bằng cách sử dụng đối tượng range() trong Python.Trong Python, 0 trả về một đối tượng phạm vi. Sau đó, bạn có thể lặp lại đối tượng phạm vi để có được một chuỗi từ 1 cho đến 2 trong các bước của 3.
Vì chúng ta cần tập hợp các số nguyên từ 2 đến N-1, chúng ta có thể chỉ định 4 và sử dụng nó kết hợp với vòng lặp 5.
Chức năng Python để kiểm tra số nguyên tố
Sử dụng ở trên, chúng ta có thể tiếp tục và xác định hàm 6 như sau.Bây giờ, hãy để phân tích định nghĩa hàm trên.Hàm trên 6 có số nguyên dương N làm đối số.
1, 3 1, 2, 4 1, 7 1, 3, 5, 15Từ bảng trên, chúng ta có thể viết ra như sau:
2 là số nguyên tố nhỏ nhất.O(n) runtime complexity: proportional to the value of n or linear in n. 1 là một yếu tố của mỗi số. Mỗi số Vì vậy, 1 và N là yếu tố tầm thường cho bất kỳ số n. Và một số nguyên tố không nên có bất kỳ yếu tố nào khác ngoài hai yếu tố này.Điều này có nghĩa là khi bạn đi từ 2 đến N-1, bạn không thể tìm thấy một yếu tố không tầm thường phân chia N mà không có phần còn lại.
Trong phần này, chúng ta hãy chính thức hóa cách tiếp cận trên thành hàm Python. Bạn có thể lặp qua tất cả các số từ 2 đến N - 1 bằng cách sử dụng đối tượng Trong Python, 0 trả về một đối tượng phạm vi. Sau đó, bạn có thể lặp lại đối tượng phạm vi để có được một chuỗi từ 1 cho đến 2 trong các bước của 3.Vì chúng ta cần tập hợp các số nguyên từ 2 đến N-1, chúng ta có thể chỉ định 4 và sử dụng nó kết hợp với vòng lặp 5.(a, b), you can see that if a is less than 4.24, then b is greater than 4.24—in this example, (2, 18) and (3, 6).
Hình dưới đây cho thấy các yếu tố của 18 được vẽ trên dòng số. Nếu số N xảy ra là một hình vuông hoàn hảo, bạn sẽ có a = b = √n là một trong những yếu tố. ▶️ Look at the factors of 36 in the table below. As 36 is a perfect square, a = b = 6 is one of the factors. For all other factor pairs (a, b), a < 6 and b > 6 holds.
Hình dưới đây cho thấy các yếu tố của 18 được vẽ trên dòng số.
Mỗi số n có thể được viết là n = a x b Nếu n là một hình vuông hoàn hảo, thì a = b = √n.Let’s proceed to optimize the function to check for prime numbers in Python.
Khác, nếu a> b, thì a> √n và b <√n.
Bây giờ, hãy để phân tích định nghĩa hàm trên:
Để tính toán căn bậc hai của một số, hãy để mô-đun toán học tích hợp của Python, và sử dụng hàm 3.Vì n có thể không phải là một hình vuông hoàn hảo, chúng tôi sẽ phải ném nó vào một số nguyên. Sử dụng def is_prime(n): for i in range(2,int(n/2)): if (n%i) == 0: return False return True4 để đúc def is_prime(n): for i in range(2,int(n/2)): if (n%i) == 0: return False return True5 vào def is_prime(n): for i in range(2,int(n/2)): if (n%i) == 0: return False return True6.Để đảm bảo rằng chúng tôi thực sự kiểm tra tối đa √n, chúng tôi thêm một cộng với chức năng
Ô mã bên dưới xác minh rằng chức năng của chúng tôi 6 hoạt động chính xác.
Đoạn trích trên cho thấy cách bạn có thể vẽ đường cong cho n và √n cho một loạt các giá trị. Chúng tôi sử dụng hàm arange () numpy để tạo một mảng số. Và sau đó, chúng tôi thu thập các giá trị của N và √n lên đến, nhưng không bao gồm 20, vào khung dữ liệu gấu trúc.From the above plot, you can infer that O(√n) algorithm is significantly faster when you’re testing if a large number is prime. Tiếp theo, chúng tôi âm mưu sử dụng chức năng lineplot () của Seaborn. Từ cốt truyện dưới đây, chúng ta thấy rằng √n nhỏ hơn đáng kể so với n. Bây giờ chúng ta hãy tăng phạm vi lên tới 2000 và lặp lại các bước tương tự như trên. Từ biểu đồ trên, bạn có thể suy ra rằng thuật toán O (√n) nhanh hơn đáng kể khi bạn kiểm tra nếu một số lượng lớn là số nguyên tố.
Để kiểm tra xem một số là số nguyên tố, cách tiếp cận ngây thơ là lặp qua tất cả các số trong phạm vi (2, n-1). Nếu bạn không tìm thấy một yếu tố phân chia N, thì N là số nguyên tố. Vì yếu tố duy nhất của N lớn hơn N/2 là chính N, bạn có thể chọn chỉ chạy lên đến N/2. Làm thế nào để bạn biết nếu một số là số nguyên tố không có vòng lặp?Về cơ bản, có hai cách để kiểm tra xem một số là số nguyên tố: đầu tiên là thử và chia nó cho các số nguyên tố thấp hơn, và cách khác là kiểm tra nó theo danh sách các số nguyên tố được xác định trước.try and divide it by the lower primes, and the other is to check it against a pre-determined list of primes.
Là chức năng chính trong Python?Hàm python để kiểm tra số nguyên tố trên hàm trên is_prime () có số nguyên dương n làm đối số.Nếu bạn tìm thấy một yếu tố trong phạm vi được chỉ định là (2, n-1), hàm trả về sai số không phải là số nguyên tố.Và nó trả về đúng nếu bạn đi qua toàn bộ vòng lặp mà không tìm thấy một yếu tố.is_prime() takes in a positive integer n as the argument. If you find a factor in the specified range of (2, n-1), the function returns False —as the number is not prime. And it returns True if you traverse the entire loop without finding a factor. |