سوال دهم Project Euler (همراه راه حل)
چهارشنبه, ۷ فروردين ۱۳۹۲، ۰۱:۲۶ ب.ظ
متن سوال:
مجموع اعداد اول کوچکتر از 10برابر است با 17=7+5+3+2
مجموع اعداد اول کوچکتر از دو میلون چند است؟
پاسخ:
این سوال رو می تونیم با روش غربال اراتستن حل کنیم.الگوریتم این غربال بدین گونه است:
1-لیستی از اعداد 2 تا n را ایجاد می کنیم.
2-عددpرو به عنوان اولین عدد اول تعین می کنیم.p=2
3-تمام مضرب های p را از لیست حذف می کنیم.
4-pرا برابر با عدد بعدی در لیست قرار می دهیم که حذف نشده است.
5-مراحل 3 و 4 را تا آنجایی ادامه می دهیم که p*p>n شود.
7-تمام اعدادی که حذف نشده اند اول هستند.
خوب کار ما این است که فقط p ها را با هم جمع کنیم.خیلی راحت.
سورس کامل: