Hướng dẫn how does python determine primality? - trăn xác định tính nguyên thủy như thế nào?
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 để Python xác định isprime?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ố.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.
Làm thế nào để bạn xác định xem một số là nguyên tố theo cách hiệu quả trong Python?Chương trình Python cho số nguyên tố khởi tạo một vòng lặp bắt đầu từ 2 kết thúc ở giá trị nguyên của sàn của căn bậc hai của số. Kiểm tra xem số có chia hết cho 2. Lặp lại cho đến khi căn bậc hai của số được kiểm tra không. Trong trường hợp, số là chia hết cho bất kỳ số nào, số không ...
Làm thế nào để bạn tìm thấy các số không phải trong Python?In các số phi dự án ... Giải pháp mẫu:. Mã Python: Nhập Math def is_not_prime (n): ANS = false for i trong phạm vi (2, int (math.sqrt (n)) + 1): Nếu n % i == 0: ans = true return ans in ("Các số phi chuẩn mực trong khoảng từ 1 đến 100: ") cho x trong bộ lọc (is_not_prime, phạm vi (1, 101)): in (x) .... Flowchart:. Trình chỉnh sửa mã Python:. Làm thế nào bạn có thể kiểm tra tối ưu tính nguyên thủy của một số?Phương pháp đơn giản.Thử nghiệm nguyên thủy đơn giản nhất là phân chia thử nghiệm: Cho một số đầu vào, n, kiểm tra xem nó có chia đều cho bất kỳ số nguyên tố nào giữa 2 và √n (nghĩa là bộ phận không còn lại).Nếu vậy, thì n là tổng hợp.Nếu không, nó là Prime.trial division: given an input number, n, check whether it is evenly divisible by any prime number between 2 and √n (i.e. that the division leaves no remainder). If so, then n is composite. Otherwise, it is prime. |