Hướng dẫn how do i print only prime numbers in python? - làm cách nào để chỉ in các số nguyên tố trong python?

Một số nguyên dương lớn hơn 1 không có yếu tố nào khác ngoại trừ 1 và bản thân số được gọi là số nguyên tố.

2, 3, 5, 7, vv là số nguyên tố vì chúng không có bất kỳ yếu tố nào khác. Nhưng 6 không phải là nguyên tố (nó là tổng hợp) kể từ, 2 x 3 = 6.

Mã nguồn

# Python program to display all the prime numbers within an interval

lower = 900
upper = 1000

print("Prime numbers between", lower, "and", upper, "are:")

for num in range(lower, upper + 1):
   # all prime numbers are greater than 1
   if num > 1:
       for i in range(2, num):
           if (num % i) == 0:
               break
       else:
           print(num)

Đầu ra

Prime numbers between 900 and 1000 are:
907
911
919
929
937
941
947
953
967
971
977
983
991
997

Ở đây, chúng tôi lưu trữ khoảng thời gian dưới mức thấp hơn cho khoảng dưới và trên cho khoảng trên và tìm số nguyên tố trong phạm vi đó. Truy cập trang này để tìm hiểu làm thế nào để kiểm tra xem một số có chính hay không.

Đây là phiên bản đơn giản và trực quan để kiểm tra xem đó có phải là nguyên tố trong chức năng đệ quy không! :) (Tôi đã làm nó như một bài tập về nhà cho một lớp MIT) trong Python, nó chạy rất nhanh cho đến năm 1900. Nếu bạn thử hơn 1900, bạn sẽ gặp một lỗi thú vị :) (bạn có muốn kiểm tra xem có bao nhiêu số của bạn Máy tính có thể quản lý?)

def is_prime(n, div=2):

    if div> n/2.0: return True

    if n% div == 0:
        return False
    else:
        div+=1
        return is_prime(n,div)

#The program:
until = 1000
for i in range(until):
    if is_prime(i):
        print i

Tất nhiên ... nếu bạn thích các hàm đệ quy, mã nhỏ này có thể được nâng cấp với một từ điển để tăng hiệu suất nghiêm trọng và tránh lỗi buồn cười đó. Đây là bản nâng cấp cấp 1 đơn giản với tích hợp bộ nhớ:

import datetime
def is_prime(n, div=2):
    global primelist
    if div> n/2.0: return True
    if div < primelist[0]:
        div = primelist[0]
        for x in primelist:
            if x ==0 or x==1: continue
            if n % x == 0:
                return False
    if n% div == 0:
        return False
    else:
        div+=1
        return is_prime(n,div)


now = datetime.datetime.now()
print 'time and date:',now
until = 100000
primelist=[]
for i in range(until):
    if is_prime(i):
        primelist.insert(0,i)
print "There are", len(primelist),"prime numbers, until", until
print primelist[0:100], "..."

finish = datetime.datetime.now()
print "It took your computer", finish - now , " to calculate it"

Dưới đây là Resuls, nơi tôi đã in 100 số nguyên tố cuối cùng được tìm thấy.

Thời gian và ngày: 2013-10-15 13: 32: 11.674448

Có 9594 số nguyên tố, cho đến 100000

[99991, 99989, 99971, 99961, 99929, 99923, 99907, 99901, 99881, 99877, 99871, 99859, 99839, 99833, 99829, 99823, 99817, 99809, 99793, 99787, 99767, 99761, 99733, 99721, 99719 , 99713, 99709, 99707, 99689, 99679, 99667, 99661, 99643, 99623, 99611, 99607 , 99409, 99401, 99397, 99391, 99377, 99371, 99367, 99349, 99347, 99317, 99289, 99277, 99259, 99257, 99251, 99241, 99233, 99223, 99191, 99181, 99173, 99149, 99139, 99137, 99133 , 99131, 99119, 99109, 99103, 99089, 99083, 99079, 99053, 99041, 99023, 99017 ] ...

Nó đã mất máy tính của bạn 0: 00: 40.871083 để tính toán nó

Vì vậy, phải mất 40 giây để máy tính xách tay i7 của tôi tính toán nó. :)

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luậnA prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself. The first few prime numbers are {2, 3, 5, 7, 11, ….}.

    Cho hai số nguyên dương bắt đầu và kết thúc. Nhiệm vụ là viết một chương trình Python để in tất cả các số nguyên tố trong một khoảng thời gian.

    Định nghĩa: Một số nguyên tố là một số tự nhiên lớn hơn 1 không có các ước số dương ngoài 1 và chính nó. Một vài số nguyên tố đầu tiên là {2, 3, 5, 7, 11, phạm.}. 

    Python3

    def prime(x, y):

        prime_list ____10

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    1

        

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    3
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    4
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    5
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    6
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    7

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    8______19

    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    0
    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    1

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    8
    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    3
    def is_prime(n, div=2):
    
        if div> n/2.0: return True
    
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    #The program:
    until = 1000
    for i in range(until):
        if is_prime(i):
            print i
    
    9

    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    0
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    3
    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    7
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    5
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    6
    The prime numbers in this range are: [2,3,5]
    0
    The prime numbers in this range are: [2,3,5]
    1
    The prime numbers in this range are: [2,3,5]
    2
    The prime numbers in this range are: [2,3,5]
    3
    The prime numbers in this range are: [2,3,5]
    4445454

    2 x 3 = 61

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    9
    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    42 x 3 = 64
    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    7______10

    def0def1

    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    0
    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    3
    def is_prime(n, div=2):
    
        if div> n/2.0: return True
    
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    #The program:
    until = 1000
    for i in range(until):
        if is_prime(i):
            print i
    
    9

    2 x 3 = 61def6

        def8 def9

    prime(x, y):0

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    0
    The prime numbers in this range are: [2,3,5]
    1

    prime(x, y):3

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    0 prime(x, y):5

    prime(x, y):6

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    0 prime(x, y):8

    Prime numbers between 900 and 1000 are:
    907
    911
    919
    929
    937
    941
    947
    953
    967
    971
    977
    983
    991
    997
    
    9     0    1____101010
    def is_prime(n, div=2):
    
        if div> n/2.0: return True
    
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    #The program:
    until = 1000
    for i in range(until):
        if is_prime(i):
            print i
    
    3
    def is_prime(n, div=2):
    
        if div> n/2.0: return True
    
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    #The program:
    until = 1000
    for i in range(until):
        if is_prime(i):
            print i
    
    9

            7

    The prime numbers in this range are: [2,3,5]
    0    9
    The prime numbers in this range are: [2,3,5]
    7

    import datetime
    def is_prime(n, div=2):
        global primelist
        if div> n/2.0: return True
        if div < primelist[0]:
            div = primelist[0]
            for x in primelist:
                if x ==0 or x==1: continue
                if n % x == 0:
                    return False
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    
    now = datetime.datetime.now()
    print 'time and date:',now
    until = 100000
    primelist=[]
    for i in range(until):
        if is_prime(i):
            primelist.insert(0,i)
    print "There are", len(primelist),"prime numbers, until", until
    print primelist[0:100], "..."
    
    finish = datetime.datetime.now()
    print "It took your computer", finish - now , " to calculate it"
    
    3
    def is_prime(n, div=2):
    
        if div> n/2.0: return True
    
        if n% div == 0:
            return False
        else:
            div+=1
            return is_prime(n,div)
    
    #The program:
    until = 1000
    for i in range(until):
        if is_prime(i):
            print i
    
    9

            7

    The prime numbers in this range are: [2,3,5]
    0prime_list 6prime_list 7

    Output: 

    The prime numbers in this range are: [2,3,5]

    Độ phức tạp về thời gian: O (N2), trong đó n là kích thước của phạm vi.O(N2), where N is the size of the range.

    Không gian phụ trợ: O (n), vì N không gian thêm đã được thực hiện.O(N), since N extra space has been taken.

    Giải pháp trên có thể được tối ưu hóa bằng cách sử dụng sàng của eratosthenes.Vui lòng xem các số Prime in trong một phạm vi để biết chi tiết. & NBSP;