سلام امروز میخوام مسئله اول سایت projecteuler.net رو براتون اینجا قرار بدم .
شرح مسئله به این صورت هست :
اگر تمام اعداد طبیعی زیر 10 را که مضرب 3 یا 5 هستند فهرست کنیم، به 3، 5، 6 و 9 می رسیم. مجموع این مضرب ها 23 است. مجموع همه مضرب های 3 یا 5 زیر 1000 را پیدا کنید.
حل سوال به صورت زیر است .
sum = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(sum)
در قسمت اول یه متغیر تعریف میکنیم که در آن 0 قرار دارد.
در قدم بعد از یه حلقه for استفاده میکنیم که نامش i است . این حلقه قرار است که از دامنه 1 تا 1000 دانه دانه برای ما پیمایش کند .و هر کدام از اعداد را در یک فیلتر بخصوصی قرار دهد .
چه فیلتری ؟ همان طور که سوال از ما خواسته است . ما باید اعداد یک تا هزار را وارد فیلتری کنیم که یا بر 3 بخش پذیر باشد و یا بر 5 بخش پذیر باشد . به همین دلیل از یه دستور شرطی استفاده میکنیم.
ما برای بخش پذیری از مود (%) به این صورت که هر عددی مودش بر 2 برابر صفر شود ما نتیجه میگیریم که این عدد بر 2 بخش پذیر است.
طبق توضیحی که در بالا دادم ما هم برای 3 و 5 این کار را انجام داده ایم . و چون در صورت سوال از واژه "یا " استفاده شده است . ما از or بین این دو مودی که گرفته ایم استفاده میکنیم .
در قدم بعد sum =sum+i می شود . و به این صورت هر بار هر عددی که از فیلتر رد می شود با sum جمع می شود و به این صورت ما مجموع تمامی اعداد از فیلتر رد شده را داریم .
و در اخر از بلوکمان خارج می شویم . و با استفاده از تابع print مجموع را چاپ میکنیم.