راه
۷ کیو· سادهمبتدیPYTHON۴ ثانیه · ۲۵۶ مگابایت

تولید مقسوم‌علیه‌ها

در این تمرین از شما می‌خواهیم تابعی به نام divs را پیاده‌سازی کنید. این تابع باید تمام مقسوم‌علیه‌های یک عدد صحیح مثبت را به ترتیب صعودی محاسبه کرده و آن‌ها را به‌جای لیست یا مجموعه، در قالب یک تولیدکننده (Generator) برگرداند.

وظیفه‌ی شما این است که تابع divs(n) را به گونه‌ای تکمیل کنید که با دریافت یک عدد صحیح مثبت به‌عنوان ورودی (n)، یک تولیدکننده را برگرداند که مقسوم‌علیه‌های n را به ترتیب از کوچک‌ترین به بزرگ‌ترین تولید می‌کند.


🎯 نمونه

مثال ۱

text
>>> list(divs(4))
[1, 2, 4]

مثال ۲

text
>>> list(divs(6))
[1, 2, 3, 6]

مثال ۳

text
>>> list(divs(15))
[1, 3, 5, 15]

💡 راهنمایی

برای پیاده‌سازی تابع divs، مراحل زیر را دنبال کنید:

  1. یک حلقه for از ۱ تا n ایجاد کنید.
  2. برای هر عدد i، بررسی کنید که آیا n بر i بخش‌پذیر است یا خیر (n % i == 0).
  3. اگر بخش‌پذیر بود، از yield برای تولید آن عدد استفاده کنید.
python
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]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود