تمرین ۱۳:
اعداد اول بین دو عدد در پایتون
برنامهای به زبان پایتون بنویسید که دو عدد طبیعی 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 >>>