جواب سوال 10 ProjectEuler: جمع اعداد اول Summation of primes

پروژه اویلر

چالش دهم سایت projecteuler.net این هست:

مجموع اعداد اول زیر ده  17 است.

جمع کل اعداد اول زیر دو میلیون را پیدا کنید.

همانطور که اطلاع دارید در حل یک مسئله برنامه نویسی راه حل های مختلفی وجود دارد، ما در این سایت اولین راه حلی که توسط آن به جواب می رسیم را به نمایش خواهیم گذاشت و شما میتوانید راه حل های خودتان را در کدنویسی اعمال نمایید و یا پس از ورود جواب صحیح در سایت به بخش مباحث مربوط به آن چالش مراجعه کرده و راه حل های مختلف دیگر کاربران را مشاهده نمایید. همچنین می توانید از بخش نظرات این پست هم برای انتشار کدهایتان و یا بحث درمورد این مسئله استفاده نمایید.

از آنجایی که محاسبه اعداد اول با ارقام بزرگ بسیار زمان بر است، بهترین راه برای این کار استفاده از لیست اعداد اول آماده موجود در اینترنت می باشد، اما در نظر داشته باشید که برای جستجوی اول بودن یک عدد می توانید از کد زیر استفاده نمایید:

def isPrime(x):
    for i in range(2, int((x/2)+1)):
        if x % i == 0:
            return False
    return True

print(isPrime(x))

و به جای x عدد مورد نظر را وارد می کنیم. همچنین می توانیم در ادامه کدهای بالا با استفاده از دستورات زیر جواب سوال را پیدا کنیم، اما همانطور که خدمتتان عرض کردم اینکار بسیاز زمانبر هست:

sumOfPrimes = 0
for i in range(2, 2_000_000):
    if isPrime(i):
        sumOfPrimes += i

print(sumOfPrimes)

یک دیدگاه در “جواب سوال 10 ProjectEuler: جمع اعداد اول Summation of primes”

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *