Hướng dẫn how do you find the nth prime number in python? - làm thế nào để bạn tìm thấy số nguyên tố thứ n trong python?
\ $ \ beingroup \ $ Hôm nay tôi đã có một cuộc phỏng vấn, nơi tôi được yêu cầu giải quyết vấn đề này:
Tôi đã viết mã này, nhưng không thể vượt qua:
Phản hồi tổng thể là chất lượng mã có thể được cải thiện rất nhiều và tôi nên tối ưu hơn trong cách tiếp cận của mình. Làm thế nào tôi có thể cải thiện mã này? Đã hỏi ngày 26 tháng 3 năm 2017 lúc 18:25Mar 26, 2017 at 18:25
HarshaharshaHarsha 1.2511 huy hiệu vàng8 Huy hiệu bạc23 Huy hiệu đồng1 gold badge8 silver badges23 bronze badges \ $ \ endgroup \ $ 2 \ $ \ beingroup \ $ Hàm Những gì bạn cần làm là kiểm tra xem
Tôi chắc chắn rằng một người khác ở đây sẽ đưa ra một giải pháp thậm chí hiệu quả hơn, nhưng điều này sẽ giúp bạn bắt đầu. Đã trả lời ngày 26 tháng 3 năm 2017 lúc 19:16Mar 26, 2017 at 19:16
DarkMattermattDarkMattermattDarkMatterMatt 5561 Huy hiệu vàng3 Huy hiệu bạc14 Huy hiệu đồng1 gold badge3 silver badges14 bronze badges \ $ \ endgroup \ $ 3 \ $ \ beingroup \ $ Hàm Những gì bạn cần làm là kiểm tra xem
Tôi chắc chắn rằng một người khác ở đây sẽ đưa ra một giải pháp thậm chí hiệu quả hơn, nhưng điều này sẽ giúp bạn bắt đầu. Đã trả lời ngày 26 tháng 3 năm 2017 lúc 19:16Mar 26, 2017 at 19:09
\ $ \ endgroup \ $ 4 \ $ \ beingroup \ $
5561 Huy hiệu vàng3 Huy hiệu bạc14 Huy hiệu đồng
Bạn chỉ cần lặp vào căn bậc hai của số, bởi vì sau đó bạn sẽ chỉ lặp lại cùng một số. Ví dụ: nếu bạn đã thử nghiệm 100, sau 10, bạn sẽ tìm thấy 20, nhưng bạn đã thử nghiệm nó trong khi bạn đang thử nghiệm 5, 100/5 = 20 và 100/20 = 5, nếu 5 không chia 100 vì vậy 20 won won 't và ngược lại, vì vậy, 100/a = b kiểm tra tính chia rẽ của a và b, chỉ ở mức 10 là sqrt (100) sẽ được lặp lại một lần nữa nhưng theo thứ tự đảo ngược, (ví dụ: bạn a = 5, b = 20 và a = 20, b = 5). Thông tin thêm ở đây Vì vậy, mã sẽ trông như vậy
Nhưng nhìn chung, phương pháp ngây thơ này tiêu tốn rất nhiều thời gian, đó là O (Sqrt (n) * n) trong đó n là tổng số số nguyên được thử nghiệm, tôi khuyên bạn nên tìm hiểu thêm về sàng eratosthenes, đó là một thuật toán để tìm tất cả các primes nhỏ hơn n trong o (n * log (log (n))) nhanh hơn rất nhiều so với cái ngây thơ.Mar 26, 2017 at 19:49
Đã trả lời ngày 26 tháng 3 năm 2017 lúc 19:09♦Peilonrayz
\ $ \ endgroup \ $ Công thức số nguyên tố cho Python là gì?Từ Nhập toán SQRT # Số sẽ được kiểm tra cho Prime N = 9 Flag = 0 If (N> 1): Đối với k trong phạm vi (2, int (sqrt (n)) + 1): if (n % k == 0): Flag = 1 break if (flag == 0): in (n, "là số nguyên tố!")Một số nguyên tố!
Thuật ngữ thứ n cho số nguyên tố là gì?Nhưng nếu bạn chỉ muốn một xấp xỉ, số nguyên tố thứ n gần như là khoảng NLNN (hay chính xác hơn là gần số m sao cho m/lnm = n) theo định lý số nguyên tố.Trên thực tế, chúng ta có những điều không có triệu chứng sau đây ràng buộc trên pn pn: nlnn+n (lnlnn 1))nlnn (or more precisely, near the number m such that m/lnm=n) by the prime number theorem. In fact, we have the following asymptotic bound on the nth prime pn: nlnn+n(lnlnn−1)
|