تولید مقسومعلیهها
در این تمرین از شما میخواهیم تابعی به نام divs را پیادهسازی کنید. این تابع باید تمام مقسومعلیههای یک عدد صحیح مثبت را به ترتیب صعودی محاسبه کرده و آنها را بهجای لیست یا مجموعه، در قالب یک تولیدکننده (Generator) برگرداند.
وظیفهی شما این است که تابع divs(n) را به گونهای تکمیل کنید که با دریافت یک عدد صحیح مثبت بهعنوان ورودی (n)، یک تولیدکننده را برگرداند که مقسومعلیههای n را به ترتیب از کوچکترین به بزرگترین تولید میکند.
🎯 نمونه
مثال ۱
>>> list(divs(4))
[1, 2, 4]
مثال ۲
>>> list(divs(6))
[1, 2, 3, 6]
مثال ۳
>>> list(divs(15))
[1, 3, 5, 15]
💡 راهنمایی
برای پیادهسازی تابع divs، مراحل زیر را دنبال کنید:
- یک حلقه
forاز ۱ تاnایجاد کنید. - برای هر عدد
i، بررسی کنید که آیاnبرiبخشپذیر است یا خیر (n % i == 0). - اگر بخشپذیر بود، از
yieldبرای تولید آن عدد استفاده کنید.
def divs(n):
for i in range(1, n + 1):
if n % i == 0:
yield i
در این تمرین، شما باید تولیدکننده را برگردانید، نه لیست. استفاده از
yieldبهجایreturnباعث میشود که تابع شما یک تولیدکننده باشد.
- در این تمرین، نیازی به دریافت ورودی از کاربر یا چاپ خروجی در کنسول ندارید.
- شما فقط باید تابع
divsرا پیادهسازی کنید.- ورودی تابع از طریق آرگومان آن دریافت میشود و خروجی تابع باید یک تولیدکننده باشد.
- نیازی به فراخوانی تابع در کد ارسالی نیست. سیستم بهطور خودکار تابع شما را با ورودیهای مختلف تست خواهد کرد.
✅ این تمرین را در ویرایشگر خود پیادهسازی کنید. به یاد داشته باشید که تابع باید یک تولیدکننده برگرداند و از
yieldاستفاده کند.
نمونهها
list(divs(4))
[1, 2, 4]
list(divs(6))
[1, 2, 3, 6]
list(divs(15))
[1, 3, 5, 15]
برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.
ورود