پروژه اویلر یا Project Euler جزو مسائل و پروژههایی در دنیای اینترنت هستند که مسائل را شما به هر زبان برنامهنویسی و به هر شکلی میتوانید حل کنید اما مهم این است که پاسخ نهایی صحیح باشد. مسائل اویلر را در سایت Project Euler میتوانید مشاهده کنید. من در این مطلب اولین مسئله را برای شما حل میکنم.
مطلوب مسئله به زبان انگلیسی
مطلوب مسئله به زبان انگلیسی را ابتدا ببینیم:
نقل قولIf we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
مطلوب مسئله به زبان فارسی
مطلوب مسئله به زبان فارسی را حالا بررسی کنیم:
اگر که تمامی اعداد طبیعی کمتر از 10 که بر 3 یا 5 بخشپذیر هستند را با هم جمع کنیم به اعداد 3، 5، 6 و 9 میرسیم که جمع آنها عبارت عدد 23 میشود.
حالا میخواهیم که جمع همه اعداد بخشپذیر بر 3 یا 5 که از 1000 کمتر باشند را پیدا کنیم.
راهحل
راه حل چیست؟ با هم پیش برویم تا مسئله را حل کنیم.
برای این کار باید دو مورد را بدانید: حلقه for و شرطی if.
از حلقه for برای تولید عدد استفاده میکنیم و از شرط هم برای چک کردن بخشپذیر بودن.
ابتدا یک بار اعداد بخشپذیر را فقط نمایش دهیم ببینیم کد ما درست هست یا نه:
خروجی:
خب تا این جا پس عددهای درست را توانستیم پیدا کنیم. حالا بیایید اینها را با هم جمع بزنیم تا به 23 برسیم.
sum_all = 0
for n in range(1, 10):
print('checking ', n)
if n % 3 == 0 or n % 5 == 0:
print('zarib is fine for ', n)
sum_all = sum_all + n
print('total sum is ', sum_all)
print('total sum is ', me)
کاری که میکنیم این هست که ابتدا یک متغیر به نام sum_all با مقدار 0 قرار میدهیم و در هر تکرار حلقه هم این عدد را با عدد پیدا شده جمع میبندیم.
و در خط سوم هم نوشتیم checking که یعنی عدد حلقه را دارد چک میکند و هر عددی که بخشپذیر باشد را در پرینت بعد شرط مینویسد.
خروجی را با هم ببینیم:
checking 1
checking 2
checking 3
zarib is fine for 3
total sum is 3
checking 4
checking 5
zarib is fine for 5
total sum is 8
checking 6
zarib is fine for 6
total sum is 14
checking 7
checking 8
checking 9
zarib is fine for 9
total sum is 23
total sum is 23
بیشتر
خب حالا برای این که کار مان را تمام کنیم کدهای دیباگ را کامنت میکنیم و رنج را هم به 1000 تغییر میدهیم:
me = 0
for n in range(1, 1000):
# print('checking ', n)
if n % 3 == 0 or n % 5 == 0:
# print('zarib is fine for ', n)
me = me + n
# print('total sum is ', me)
print('total sum is ', me)
خروجی:
تبریک! شما اولین مسئله اویلر را حل کردید.
- مسئله اویلر
- پروژه اویلر
- سوال اویلر
- حل مسئله اول اویلر پایتون
- مسئله اول اویلر پایتون
- euler project
- python euler project
- solve 1st euler project python
نظرات 1
mehrdadVahedi
به کانال زیر هم حتما سر بزنین
با زبان ملموس و قابل فهمی سوالات رو توضیح میده