low, high = 2, 10 primes = [2, 3] for num in range[low, high + 1]: flag = 0 if num < 2: flag = 1 if num % 2 == 0: continue if num % 3 == 0: continue iter = 2 while iter < int[pow[num, 0.5]]: if num % iter == 0: flag = 1 break iter += 1 if flag == 0: primes.append[num] print[primes]
Số nguyên tố là số tự nhiên lớn hơn 1 và không có ước nào ngoài 1 và chính nó. Bạn có thể viết một mã bằng Python sẽ giúp bạn tìm tất cả các số nguyên tố. Trong bài viết này, chúng ta sẽ xem cách viết chương trình số nguyên tố bằng Python theo trình tự sau
Bắt đầu nào
Một số nguyên tố là gì?
Số nguyên dương lớn hơn 1 không có ước nào khác ngoài 1 và chính nó được gọi là số nguyên tố. Các số 2, 3, 5, 7, v.v. là các số nguyên tố vì chúng không có thừa số nào khác. Để tìm một số nguyên tố trong Python, bạn phải lặp lại giá trị từ đầu đến cuối bằng vòng lặp for và với mỗi số, nếu nó lớn hơn 1, hãy kiểm tra xem nó có chia hết cho n không. Nếu chúng tôi tìm thấy bất kỳ số nào khác chia, hãy in giá trị đó
Tìm hiểu khóa đào tạo Python của chúng tôi tại các thành phố/quốc gia hàng đầu
Chương trình Python để kiểm tra số nguyên tố
Số nguyên tố luôn dương và nó sẽ được kiểm tra ngay từ đầu chương trình. Tại đây, bạn sẽ chia số vừa nhập cho tất cả các số để xem có ước dương nào khác ngoài 1 và chính số đó không. Nếu bất kỳ ước nào được tìm thấy thì chúng tôi hiển thị rằng “số không phải là số nguyên tố”, ngược lại chúng tôi hiển thị rằng “số là số nguyên tố”
chương trình Python
num = 13 if num > 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
Ví dụ
def isPrime[n] : if [n 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"]0
# prime number in an interval
0 # prime number in an interval
1 # Python program to print all
1____10num = 13 if num > 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"]0
# prime number in an interval
5# prime number in an interval
6# prime number in an interval
7# prime number in an interval
8
# Python program to print all
5def
0# prime number in an interval
6
# prime number in an interval
7__# Python program to print all
0 def
4# Python program to print all
2 # Python program to print all
3def
7def
8def
9prime[x, y]:
0prime[x, y]:
1prime[x, y]:
2def
8prime[x, y]:
4prime[x, y]:
5# prime number in an interval
5prime[x, y]:
7
prime[x, y]:
8# Python program to print all
6 # Python program to print all
1
1 def
4
num = 13 if num > 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"]0
num = 13 if num > 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"]0
# prime number in an interval
0# prime number in an interval
6
7
8
# prime number in an interval
7____60# prime number in an interval
6
prime[x, y]:
8prime_list
3
prime_list
5 prime_list
prime_list
7
prime_list
8
num = 13 if num > 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"]0
def
8num = 13 if num > 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"]01
num = 13 if num > 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"]0
num = 13 if num > 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"]03
num = 13 if num > 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"]04
num = 13 if num > 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"]0
num = 13 if num > 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"]06
# Python program to print all
6
num = 13 if num > 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"]08_______109
num = 13 if num > 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"]0
num = 13 if num > 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"]0
# prime number in an interval
0# prime number in an interval
6
______115def
7
num = 13 if num > 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"]17
prime[x, y]:
4def
0# prime number in an interval
6
______115def
7
4
5
đầu ra.
The prime numbers in this range are: [2,3,5]
Thời gian phức tạp. O[N2], trong đó N là kích thước của phạm vi
Không gian phụ trợ. O[N], vì N dung lượng thừa đã được sử dụng
Giải pháp trên có thể được tối ưu hóa bằng Sàng của Eratosthenes. Vui lòng xem in các số nguyên tố trong một dãy để biết chi tiết.