در این چالش، باید بررسی کنید که آیا یک عدد به طور دقیق بر ترکیبی از ارقام خود بخشپذیر است یا خیر. سه شرط ممکن برای آزمایش وجود دارد:
- عدد دادهشده به طور دقیق بر هر یک از ارقام خود (به جز صفر) بخشپذیر باشد.
- عدد دادهشده به طور دقیق بر مجموع ارقام خود بخشپذیر باشد.
- عدد دادهشده به طور دقیق بر حاصلضرب ارقام خود بخشپذیر باشد.
با توجه به یک عدد صحیح n
، تابعی پیادهسازی کنید که خروجی زیر را برگرداند:
- اگر همه آزمایشها درست باشند، رشته
"Perfect"
برگردانده شود. - اگر برخی از آزمایشها درست باشند، تعداد آزمایشهای درست (۱ یا ۲) برگردانده شود.
- اگر همه آزمایشها نادرست باشند، رشته
"Indivisible"
برگردانده شود.
مثال
digital_division(21) ➞ 1
# فقط بر مجموع ارقام خود بخشپذیر است (۲ + ۱ = ۳).
digital_division(128) ➞ 2
# بر هر یک از ارقام خود بخشپذیر است.
# بر حاصلضرب ارقام خود بخشپذیر است (۱ * ۲ * ۸ = ۱۶).
نمونه ورودی و خروجی
DigitalDivision(100) ➞ 2
DigitalDivision(12) ➞ "Perfect"
DigitalDivision(31) ➞ "Indivisible"
نکات
- هنگام بررسی بخشپذیری عدد بر هر یک از ارقام خود، ارقام صفر را نادیده بگیرید (به مثال سوم مراجعه کنید).
- اگر عدد حداقل یک رقم صفر داشته باشد، نمیتواند بر حاصلضرب ارقام خود بخشپذیر باشد (تقسیم بر صفر).
- هر عدد یکرقمی بزرگتر از ۰ به طور پیشفرض
"Perfect"
است. - عدد دادهشده همیشه یک عدد صحیح مثبت بزرگتر از ۰ خواهد بود.
DigitalDivision(100) ➞ 2
DigitalDivision(12) ➞ "Perfect"
DigitalDivision(31) ➞ "Indivisible"
DigitalDivision(21) ➞ 1
DigitalDivision(128) ➞ 2
DigitalDivision(111) ➞ "Perfect"
DigitalDivision(40) ➞ 2
DigitalDivision(35) ➞ "Indivisible"
DigitalDivision(666) ➞ 2
نظرات