Chương trình Python để hiển thị tất cả các số nguyên tố trong một phạm vi

Đây là phiên bản đơn giản và trực quan để kiểm tra xem nó có phải là số nguyên tố trong hàm RECURSIVE hay không. . ) (Tôi đã làm 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 máy tính của bạn có thể quản lý bao nhiêu số không?)

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 bằng từ điển để tăng hiệu suất của nó một cách nghiêm túc 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"

Đây là kết quả, 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 tháng. 2013-10-15 13. 32. 11. 674448

Có 9594 số nguyên tố, đế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

Chạy
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 dương lớn hơn 1 không có ước nào khác ngoài 1 và chính số đó gọi là số nguyên tố. 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. Nhưng 6 không phải là số nguyên tố (nó là hợp số) vì 2 x 3 = 6. Chúng tôi yêu cầu người dùng cung cấp một phạm vi và hiển thị tất cả các số nguyên tố trong khoảng đó

Mã nguồn

# Python program to ask the user for a range and display all the prime numbers in that interval

# take input from the user
lower = int(input("Enter lower range: "))
upper = int(input("Enter upper range: "))

for num in range(lower,upper + 1):
   # 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

Enter lower range: 900
Enter upper range: 1000
907
911
919
929
937
941
947
953
967
971
977
983
991
997

Ở đây, chúng tôi lấy một khoảng từ người dùng và tìm các số nguyên tố trong khoảng đó

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách in tất cả các Số nguyên tố trong một khoảng thời gian nhất định bằng cách sử dụng vòng lặp for trong Python. Người dùng phải cung cấp giới hạn trên và giới hạn dưới của khoảng thời gian làm đầu vào và chương trình của chúng tôi sẽ hiển thị tất cả các Số nguyên tố trong khoảng thời gian đó

Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có hai ước là 1 và chính nó. Đầu tiên, một vài số nguyên tố là- 2,3,5,7,11. và như thế. Các số không phải là số nguyên tố được gọi là hợp số và có nhiều hơn 2 ước

Để thực hiện tác vụ này, cách tiếp cận của chúng ta là chạy một vòng lặp từ giới hạn dưới đến giới hạn trên và kiểm tra từng số trong khoảng này xem nó có phải là số nguyên tố hay không. Nếu bạn muốn biết chi tiết logic đằng sau cách kiểm tra xem một số có phải là số nguyên tố hay không, hãy tham khảo hướng dẫn này .

Chương trình sẽ lấy đầu vào như sau,

Đầu vào- Nhập giới hạn trên. 3

Nhập giới hạn dưới. 10

Kết quả- Các số nguyên tố từ 3 đến 10 là

3 5 7

thuật toán

Nhìn vào thuật toán dưới đây để hiểu logic

Bước 1 - Xác định hàm sẽ kiểm tra xem số đó có phải là số nguyên tố hay không

Bước 2 - Kiểm tra xem số đó có lớn hơn 1 không

Bước 3 - Chạy vòng lặp bắt đầu từ 2 (vì 1 không phải là số nguyên tố) đến số cần kiểm tra thừa số

Bước 4 - Nếu số có thừa số thoát ra khỏi vòng lặp

Bước 5 - Khác, in số

Bước 6 - Lấy đầu vào của giới hạn trên và dưới từ người dùng

Bước 7 - Chạy một vòng lặp từ giới hạn dưới lên giới hạn trên

Bước 8 - Truyền mỗi lần lặp để hàm kiểm tra và hiển thị số nếu là số nguyên tố

Chương trình Python

Hãy xem mã và cố gắng hiểu nó liên quan đến thuật toán

def check_prime_no(num):
    if num > 1:
       for i in range(2, num):
           if (num % i) == 0:
               break
       else:
           print(num,end=" ")
    
lower = int(input("enter lower limit: "))
upper = int(input("enter upper limit: "))

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

for i in range(lower, upper + 1):
   # all prime numbers are greater than 1
   check_prime_no(i)


nhập giới hạn dưới. 12
nhập giới hạn trên. 37
Các số nguyên tố từ 12 đến 37 là.
13 17 19 23 29 31 37

Chúng tôi đã sử dụng end=" " để in các số trong một dòng

Phần kết luận

Chúng tôi đã học cách hiển thị tất cả các số nguyên tố giữa một khoảng. Để thực hiện tác vụ này, chúng tôi đã xác định một hàm sẽ kiểm tra các số nguyên tố trong khoảng và in giá trị tương ứng. Sau đó, chúng tôi lấy thông tin đầu vào từ người dùng và sử dụng chúng để chạy một vòng lặp giữa khoảng thời gian. Kiểm tra tất cả các giá trị trong phạm vi bằng cách sử dụng hàm chúng tôi đã xác định