تمرین‌ها

تمرین ۱۳:

اعداد اول بین دو عدد در پایتون

برنامه‌ای به زبان پایتون بنویسید که دو عدد طبیعی m و n را از کاربر دریافت کند و اعداد اول بین آنها یعنی اعداد اول موجود در بازه‌ی بسته‌ی [m,n] را نمایش دهد و فراوانی (تعداد اعداد اول) و فراوانی نسبی (درصد اعداد اول به کل اعداد) را مشخص سازد.

کد:
 
#Prime Numbers in the Interval [m,n]        March 29, 2023 
#Programmer: Mohammad Rajabpur    Email: info@pythonize.ir 

def Prime(x):
    #determines whether number x is prime or composite
    r = 0
    if x < 1:
        r = -1 #not a natural number
    else:
        counter = 0
        for i in range(1,int(x**0.5 + 1)):
            if x%i==0:
                counter += 1
                if counter > 1:
                    break
        if counter == 1:
            r = 1 #prime number
        elif counter > 1:
            r = 0 #composite number
    return r

def Main():
    #The Interface between the User and the Program
    print("Prime Numbers in the Interval between m & n")
    print("To terminate the program: m or n = exit")
    while True:
        print("-------------------------------------------")
        m = input("m = ")
        m = m.lower()
        if m == "exit":
            break
        n = input("n = ")
        n = n.lower()
        if n == "exit":
            break
        try:
            m = int(m)
            n = int(n)
            if m < 1 or n < 1:
                print("Error: m or n cannot be less than 1!")
            elif m >= n:
                print("Error: n has to be greater than m!")
            else:
		#stores the prime numbers of the interval in the list P
                P = []
                for i in range(m, n+1):
                    if Prime(i)==1:
                        P.append(i)
                print("Total =", n+1-m)
                print("Prime Numbers =", len(P))
                print("Relative Frequency =", round((100*len(P))/(n+1-m),2),"%")
                print(P)
        except Exception as Error:
            print(f"{Error=}")

Main()

اجرا:
>>>
    ==== RESTART: C:\Prime Numbers in an Interval.py ====
    Prime Numbers in the Interval between m & n
    To terminate the program: m or n = exit
    -------------------------------------------
    m = 1
    n = 10
    Total = 10
    Prime Numbers = 5
    Relative Frequency = 50.0 %
    [1, 2, 3, 5, 7]
    -------------------------------------------
    m = 11
    n = 20
    Total = 10
    Prime Numbers = 4
    Relative Frequency = 40.0 %
    [11, 13, 17, 19]
    -------------------------------------------
    m = 21
    n = 30
    Total = 10
    Prime Numbers = 2
    Relative Frequency = 20.0 %
    [23, 29]
    -------------------------------------------
    m = 31
    n = 40
    Total = 10
    Prime Numbers = 2
    Relative Frequency = 20.0 %
    [31, 37]
    -------------------------------------------
    m = 41
    n = 50
    Total = 10
    Prime Numbers = 3
    Relative Frequency = 30.0 %
    [41, 43, 47]
    -------------------------------------------
    m = 51
    n = 60
    Total = 10
    Prime Numbers = 2
    Relative Frequency = 20.0 %
    [53, 59]
    -------------------------------------------
    m = 61
    n = 70
    Total = 10
    Prime Numbers = 2
    Relative Frequency = 20.0 %
    [61, 67]
    -------------------------------------------
    m = 71
    n = 80
    Total = 10
    Prime Numbers = 3
    Relative Frequency = 30.0 %
    [71, 73, 79]
    -------------------------------------------
    m = 81
    n = 90
    Total = 10
    Prime Numbers = 2
    Relative Frequency = 20.0 %
    [83, 89]
    -------------------------------------------
    m = 91
    n = 100
    Total = 10
    Prime Numbers = 1
    Relative Frequency = 10.0 %
    [97]
    -------------------------------------------
    m = exit
>>>