بر اساس حدس گلدباخ، هر عدد زوج بزرگتر از ۶ برابر است با مجموع دو عدد اول کوچکتر از خودش.
در این برنامه پایتونی:
- چند عدد زوج بزرگتر از ۶ از کاربر دریافت میشود
- برای هر عدد، دو عدد اول پیدا میشود که مجموعشان برابر با آن عدد باشد
- برنامه تا زمانی که کاربر بخواهد ادامه مییابد
prim(n): تمام اعداد اول کوچکتر از n را در یک آرایه قرار میدهدfind_two_numbers(n, primes): دو عدد اول از لیست primes پیدا میکند که مجموعشان برابر با n باشد
def prim(n):
primes = []
for num in range(2, n):
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
break
else:
primes.append(num)
return primes
def find_two_numbers(n, primes):
for i in primes:
if (n - i) in primes:
return i, n - i
return None, None
# اجرای برنامه
while True:
num = int(input("عدد زوج بزرگتر از ۶ را وارد کنید (برای خروج 0): "))
if num == 0:
print("خروج از برنامه.")
break
if num <= 6 or num % 2 != 0:
print("عدد وارد شده باید زوج و بزرگتر از ۶ باشد.")
continue
primes = prim(num)
a, b = find_two_numbers(num, primes)
if a and b:
print(f"{num} = {a} + {b}")
else:
print("هیچ جفت عدد اولی برای این عدد پیدا نشد.")
عدد زوج بزرگتر از ۶ را وارد کنید (برای خروج 0): 30
30 = 7 + 23
عدد زوج بزرگتر از ۶ را وارد کنید (برای خروج 0): 42
42 = 5 + 37
عدد زوج بزرگتر از ۶ را وارد کنید (برای خروج 0): 0
خروج از برنامه.
- تابع prim(n) با بررسی تقسیمپذیری، تمام اعداد اول کوچکتر از n را پیدا میکند
- تابع find_two_numbers(n, primes) با پیمایش لیست اعداد اول، دو عددی را پیدا میکند که مجموعشان برابر با n باشد
- برنامه در یک حلقه اجرا میشود تا زمانی که کاربر عدد ۰ وارد کند