Đầu tiên chúng ta cần biết số nguyên tố là gì.
Một số nguyên tố luôn luôn là một số nguyên dương và chia hết cho chính xác 2 số nguyên [1 và chính số], 1 không phải là số nguyên tố.
Bây giờ chúng ta sẽ thảo luận về một số phương pháp để tìm số nguyên tố.
Method1
Sử dụng cho các vòng lặp
Thí dụ
def primemethod1[number]: # Initialize a list my_primes = [] for pr in range[2, number]: isPrime = True for i in range[2, pr]: if pr % i == 0: isPrime = False if isPrime: my_primes.append[pr] print[my_primes] primemethod1[50]
Đầu ra
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
Method2
Cho các vòng lặp với giờ nghỉ
Thí dụ
def primemethod2[number]: # Initialize a list my_primes = [] for pr in range[2, number + 1]: isPrime = True for num in range[2, pr]: if pr % num == 0: isPrime = False break if isPrime: my_primes.append[pr] return[my_primes] print[primemethod2[50]]
Đầu ra
Cho các vòng lặp với giờ nghỉMethod3
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
Thí dụ
def primemethod3[number]: # Initialize a list primes = [] for pr in range[2, number]: isPrime = True for num in range[2, int[pr ** 0.5] + 1]: if pr % num == 0: isPrime = False break if [isPrime]: print["Prime number: ",pr] primemethod3[50]
Đầu ra
Prime number: 2 Prime number: 3 Prime number: 5 Prime number: 7 Prime number: 11 Prime number: 13 Prime number: 17 Prime number: 19 Prime number: 23 Prime number: 29 Prime number: 31 Prime number: 37 Prime number: 41 Prime number: 43 Prime number: 47
Cho các vòng lặp với giờ nghỉ
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
- Cho vòng lặp, phá vỡ và căn bậc hai
- Cập nhật vào ngày 26 tháng 6 năm 2020 12:31:53
- Câu hỏi và câu trả lời liên quan
- Các phương pháp khác nhau để tìm số nguyên tố trong chương trình Python
- Các phương pháp khác nhau để tìm số nguyên tố trong java
- Phân tích các phương pháp khác nhau để tìm số nguyên tố trong 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
- Các phương pháp khác nhau để tìm số nguyên tố trong C#
- Phương pháp Java để kiểm tra Prime và tìm Prime tiếp theo
- Chương trình Python để tìm xem một số là nguyên tố hay không sử dụng đệ quy
- Chương trình Python để kiểm tra số nguyên tố
- Chương trình tìm số lượng gcd mỗi chuỗi khác nhau trong Python
- Chương trình Python để tìm hệ số chính lớn nhất của một số
- Các phương thức chuyển đổi dữ liệu khác nhau trong Python là gì?
- 5 phương pháp khác nhau để tìm độ dài của chuỗi trong C ++?
Các số nguyên tố từ 1 đến 100 là: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89, 97. Tại sao 1 không phải là số nguyên tố? 1 không phải là số nguyên tố vì nó chỉ có một yếu tố, cụ thể là 1.
checkMe = range[1, 100]
dividers = []
primes = []
for y in checkMe:
x = y
for x in range[2, x]:
if [y/x].is_integer[]:
dividers.append[x]
if len[dividers] < 2:
primes.append[y]
print["\n"+str[checkMe]+" has "+str[len[primes]]+" primes"]
print[primes]
Output:
range[1, 100] has 5 primes
[1, 2, 3, 4, 5]
Tôi đang cố gắng in tất cả các số nguyên tố trong một mảng có tên là 'CheckMe'. Nhưng tôi không thể làm cho nó hoạt động. Tôi đã thực hiện một chương trình kiểm tra nó cho một số nhưng nó không hoạt động cho một mảng. Nếu có ai biết điều gì là sai trên xin vui lòng cho tôi biết. BTW: Tôi là một Noob lớn trong Python nên nó có lẽ không phải là mã đẹp nhất.
range[1, 100] has 25 primes
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
89, 97]
Các số nguyên tố từ 1 đến 100 là: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89, 97. Tại sao 1 không phải là số nguyên tố? 1 không phải là số nguyên tố vì nó chỉ có một yếu tố, cụ thể là 1.✎ Update October-16-2020
@AMAJI✎ & NBSP; Cập nhật tháng 10-16-2020
Dưới đây là một đoạn mã cho một chương trình đếm các số nguyên tố trong phạm vi bạn chỉ định trong Python.
Khi bạn muốn đếm các số nguyên tố như trong hình ảnh, hoặc khi bạn muốn đếm số nguyên tố để bình tĩnh lại, bạn sẽ muốn đảm bảo các số nguyên tố là chính xác [?].
Đây là một mã được định dạng mà tôi đã viết trong khi giải một câu đố nhỏ [CTF].
Tôi đã viết nó dưới dạng có thể tái sử dụng như một chức năng, vì vậy hãy thoải mái sửa đổi nó nếu bạn muốn.
Tôi không sử dụng bất kỳ thư viện nào như Numpy trong Python.
- Môi trường được thử nghiệm
Python 2.7.15、3.8.5
Mã số
get_primelist là một hàm đếm số nguyên tố từ 2 đến trên.
get_primelist.py
def get_primelist[upper]:
result = []
for cp in range [ 2, upper + 1 ]:
for i in range [ 2, cp ]:
if [ cp % i == 0 ]:
break
else:
result.append[cp]
return result
# RUN to create an array of the prime numbers
# [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41,
# 43,47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 ]
print [get_primelist[100]]
Nó trả về một mảng các số nguyên tố từ 2 trở lên.
Ngay cả với một chương trình rất đơn giản, bạn có thể nhanh chóng tính toán phạm vi từ 2 đến 100.000, vì vậy nếu bạn không muốn tốc độ, bạn không phải điều chỉnh nó khó như bạn muốn.
Bảng sau đây cho thấy thời gian ước tính cho phép tính trong một thời gian thực tế.
Trên Linux, đây là thời gian để hiển thị kết quả của lệnh
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]0.
1 ~ 100 | 0,03 giây |
1 ~ 1.000 | 0,03 giây |
1 ~ 1.000 | 1 ~ 10.000 |
0,29 giây | 1 ~ 100.000 |
22,55 giây
- Môi trường đo lường
- Python: Python3.8.2
- HĐH: Ubuntu 20.04 LTE @ Windows10 Home x64 WSL2
- Bộ xử lý: Intel [R] Core [TM] I7-8565U CPU @ 1.80GHz
RAM: 8,00 GB
Tôi nghĩ rằng bạn có thể nhận được các số nguyên tố đầy đủ và nhanh hơn nếu bạn sử dụng thư viện toán học phù hợp hoặc một cái gì đó. Tôi có thể thêm các bài viết bằng thư viện trong tương lai.
Bản ghi nhớ tăng tốc
Tôi muốn thêm một phiên bản được cải thiện một chút, như sàng lọc eratosthenes và cành cắt, nếu tôi có thời gian.
Kết thúc.
- Người giới thiệu
- PEP8 - Hướng dẫn kiểu cho mã Python
- Wikipedia - rây eratosthenes
MIT - Khóa học mở: Định lý số nguyên tố
- Cập nhật