Hướng dẫn print prime numbers from 1 to 100 in python using function - in các số nguyên tố từ 1 đến 100 trong python bằng hàm

Tôi đang cố gắng in tất cả các số nguyên tố từ 1 đến 100 bằng cách sử dụng chức năng Boolean.

Dưới đây là mã của tôi đang hoạt động.

for n in range[1,101]:
status = True
if n < 2:
    status = False
else:
    for i in range[2,n]:
        if n % i == 0:
            status = False

    if status:
        print[n, '', sep=',', end='']

Nhưng khi tôi đặt mã vào hàm và chạy mô -đun, không có gì in trên vỏ. Tôi đã làm gì sai?

is_prime[]:
    for n in range[1,101]:
        status = True
        if n < 2:
            status = False
        else:
            for i in range[2,n]:
                if n % i == 0:
                    status = False
        return status

if is_prime[]:    
    print[n, '', sep=',', end='']

Dưới đây là đầu ra của chương trình. Làm cách nào để ngăn dấu phẩy cuối cùng in ấn?

is_prime[]:
    for n in range[1,101]:
        status = True
        if n < 2:
            status = False
        else:
            for i in range[2,n]:
                if n % i == 0:
                    status = False
        return status

if is_prime[]:    
    print[n, '', sep=',', end='']
1
is_prime[]:
    for n in range[1,101]:
        status = True
        if n < 2:
            status = False
        else:
            for i in range[2,n]:
                if n % i == 0:
                    status = False
        return status

if is_prime[]:    
    print[n, '', sep=',', end='']
1

Một số nguyên tố là một số tự nhiên lớn hơn 1 và không có ước số dương ngoài 1 và chính nó, chẳng hạn như 2, 3, 5, 7, 11, 13, v.v.

Người dùng được cung cấp hai số nguyên, giá trị thấp hơn và giá trị trên. Nhiệm vụ là viết chương trình Python để in tất cả các số nguyên tố giữa khoảng thời gian đã cho [hoặc phạm vi].

Để in tất cả các số nguyên tố giữa khoảng thời gian đã cho, người dùng phải tuân theo các bước sau:

  • Bước 1: Vòng lặp qua tất cả các yếu tố trong phạm vi đã cho. Loop through all the elements in the given range.
  • Bước 2: Kiểm tra từng số nếu nó có bất kỳ yếu tố nào giữa 1 và chính nó. Check for each number if it has any factor between 1 and itself.
  • Bước 3: Nếu có, thì số không phải là số nguyên tố và nó sẽ chuyển sang số tiếp theo. If yes, then the number is not prime, and it will move to the next number.
  • Bước 4: Nếu không, đó là số chính và chương trình sẽ in nó và kiểm tra số tiếp theo. If no, it is the prime number, and the program will print it and check for the next number.
  • Bước 5: Vòng lặp sẽ bị hỏng khi đạt đến giá trị trên. The loop will break when it is reached to the upper value.

Ví dụ: Mã Python để in số nguyên tố giữa khoảng thời gian đã cho.

Output:

Please, Enter the Lowest Range Value:  14
Please, Enter the Upper Range Value:  97
The Prime Numbers in the range are: 
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

Sự kết luận

Trong hướng dẫn này, chúng tôi đã chỉ ra cách viết mã để in các số nguyên tố giữa khoảng thời gian đã cho.

Ở đây, trong trang này, chúng tôi sẽ thảo luận về chương trình để tìm & nbsp; Số nguyên tố từ 1 đến 100 trong Python .a Số nguyên tố là một số nguyên dương không có Divisors & NBSP; ngoại trừ một và chính nó hoặc chỉ có thể được chia chính xác bởi các số nguyên 1 và chính nó mà không để lại một phần còn lại.

Phương pháp được thảo luận trong trang

  • Phương pháp 1: Kiểm tra cơ bản nguyên tố bằng cách chỉ kiểm tra n đầu tiênBasic checking prime by only checking first n
  • Phương pháp 2: Kiểm tra cơ bản Prime bằng cách chỉ kiểm tra các ước số đầu tiên: Basic checking prime by only checking first n/2 divisors
  • Phương pháp 3: Kiểm tra nguyên tố bằng cách chỉ kiểm tra các ước số đầu tiên Checking prime by only checking first √n divisors
  • Phương pháp 4: Kiểm tra Prime bằng cách chỉ kiểm tra các phân chia đầu tiên, nhưng cũng bỏ qua các lần lặp. Checking prime by only checking first √n divisors, but also skipping even iterations.

Phương thức được sử dụng để kiểm tra nguyên thủy Chúng tôi sử dụng phương pháp thông thường để kiểm tra Prime. Nếu số được đưa ra là số nguyên tố thì chúng ta in nó khác, chúng ta sẽ chuyển sang số tiếp theo và kiểm tra xem đó có phải là số nguyên tố không và tiếp tục đến 100 Here we use the usual method to check prime. If given number is prime then we print it else we move ahead to the next number and check if that is prime and keep going till 100

Phương pháp 1

Mã Python

Chạy

def checkPrime[num]:

    #  0, 1 and negative numbers are not prime
    if num < 2:
        return 0
    else:

        # no need to run loop till num-1 as for any number x the numbers in
        # the range[num/2 + 1, num] won't be divisible anyway
        # Example 36 won't be divisible by anything b/w 19-35

        x = num // 2
        for j in range[2, x + 1]:
            if num % j == 0:
                return 0

    # the number would be prime if we reach here
    return 1


a, b = 1, 100
for i in range[a, b + 1]:
    if checkPrime[i]:
        print[i, end=" "]

Đầu ra

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

Phương pháp 2

Thuật toán [Phương pháp 2]

  • Chạy một vòng lặp trong lần lặp của [i] b/w 1 và 100 giới hạn.
  • Đối với mỗi người, tôi kiểm tra xem số nguyên tố của nó hay không sử dụng chức năng kiểm tra [i]
  • Nếu tôi in Prime, nó sẽ chuyển sang lần lặp tiếp theo

Phương thức được sử dụng để kiểm tra nguyên thủy Chúng tôi sử dụng phương pháp thông thường để kiểm tra Prime. Tuy nhiên, chúng tôi chỉ kiểm tra tính chia rẽ cho đến khi num/2. Here we use the usual method to check prime. We however check the divisibility only till num/2.

Vì phạm vi [num/2 + 1, num] sẽ không chia hết. Ví dụ 36 sẽ không chia hết cho bất cứ điều gì b/w 19-35

Mã Python

Chạy

def checkPrime[num]:

    #  0, 1 and negative numbers are not prime
    if num < 2:
        return 0
    else:

        # no need to run loop till num-1 as for any number x the numbers in
        # the range[num/2 + 1, num] won't be divisible anyway
        # Example 36 won't be divisible by anything b/w 19-35
        x = num // 2
        for j in range[2, x + 1]:
            if num % j == 0:
                return 0

    # the number would be prime if we reach here
    return 1


for i in range[1, 100 + 1]:
    if checkPrime[i]:
        print[i, end=" "]

Đầu ra

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

Phương pháp 2

Thuật toán [Phương pháp 2]Has better time complexity of O[√N]

  • Chạy một vòng lặp trong lần lặp của [i] b/w 1 và 100 giới hạn.
  • Đối với mỗi người, tôi kiểm tra xem số nguyên tố của nó hay không sử dụng chức năng kiểm tra [i]
  • Nếu tôi in Prime, nó sẽ chuyển sang lần lặp tiếp theo

Phương thức được sử dụng để kiểm tra nguyên thủy Chúng tôi sử dụng phương pháp thông thường để kiểm tra Prime. Tuy nhiên, chúng tôi chỉ kiểm tra tính chia rẽ cho đến khi num/2. A number n is not a prime if it can be factored into two factors a & b:
n = a * b

Vì phạm vi [num/2 + 1, num] sẽ không chia hết. Ví dụ 36 sẽ không chia hết cho bất cứ điều gì b/w 19-35

Phương pháp 3

Logic bên ngoài vẫn giữ nguyên. Chỉ phương pháp để kiểm tra các thay đổi chính để làm cho mã được tối ưu hóa hơn. Có độ phức tạp thời gian tốt hơn của O [√n]

Mã Python

Chạy

from math import sqrt


def checkPrime[num]:
    #  0, 1 and negative numbers are not prime
    if num < 2:
        return 0
    else:

        # A number n is not a prime, if it can be factored into two factors a & b:
        # n = a * b

        """Now a and b can't be both greater than the square root of n, since
        then the product a * b would be greater than sqrt[n] * sqrt[n] = n.
        So in any factorization of n, at least one of the factors must be
        smaller than the square root of n, and if we can't find any factors
        less than or equal to the square root, n must be a prime."""

        for j in range[2, int[sqrt[num]]]:
            if num % j == 0:
                return 0

    # the number would be prime if we reach here
    return 1


a, b = 1, 100
for i in range[a, b + 1]:
    if checkPrime[i]:
        print[i, end=" "]

Đầu ra

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

Phương pháp 2

Thuật toán [Phương pháp 2]Has same time complexity of O[√N].

Nhưng thực hiện kiểm tra ít hơn một nửa

  • Chạy một vòng lặp trong lần lặp của [i] b/w 1 đến 100 giới hạn.
  • Đối với mỗi người, tôi kiểm tra xem số nguyên tố của nó hay không sử dụng chức năng kiểm tra [i]
  • Nếu tôi là Prime Print, nó sẽ chuyển sang lặp tiếp theo

Phương pháp được sử dụng để kiểm tra phương pháp Primethis sử dụng giả định rằng - This method uses the assumption that –

Chúng ta chỉ có thể kiểm tra tất cả các ước giữa [2, √num] 2 là số thậm chí duy nhất chúng ta có thể bỏ qua tất cả các lần lặp lại trong vòng lặp trong vòng lặp trong vòng lặp trong vòng lặp trong vòng lặp trong vòng lặp trong vòng lặp trong vòng lặp
2 is the only even prime number
We can skip all even iterations in the loop

Mã Python

Chạy

from math import sqrt


def checkPrime[n]:
    # 0 and 1 are not prime numbers
    # negative numbers are not prime
    if n 

Bài Viết Liên Quan

Chủ Đề