بکندباز

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

قوانین:

  1. اگر تعداد ارقام حاصل‌ضرب زوج باشد، دو قسمت باید هم‌اندازه باشند.
  2. اگر تعداد ارقام فرد باشد، نیمه‌ی راست باید طولانی‌تر باشد، و نیمه‌ی چپ می‌تواند صفر یا کوچک‌تر باشد.

تابعی بنویسید که یک عدد صحیح مثبت n دریافت کند و بررسی کند که آیا عدد کاپریکار است یا نه.
اگر عدد کاپریکار باشد، True و در غیر این صورت False برگرداند.

مثال

is_kaprekar(3) ➞ False
# 3² = "9"
# تقسیم: Left = 0, Right = 9
# 0 + 9 = 9 ≠ 3  ❌

نکات:

  • عدد 0 و 1 به‌طور بدیهی کاپریکار هستند، زیرا برابر توان دوم خودشان هستند.
  • اعدادی که فقط شامل 9 هستند (مثل 9، 99، 999، …) همیشه اعداد کاپریکار هستند
self.assertEqual(is_kaprekar(3), False)
self.assertEqual(is_kaprekar(5), False)
self.assertEqual(is_kaprekar(297), True)
self.assertEqual(is_kaprekar(2), False)
self.assertEqual(is_kaprekar(9), True)
self.assertEqual(is_kaprekar(65), False)
self.assertEqual(is_kaprekar(99), True)
self.assertEqual(is_kaprekar(666), False)

پاسخ های کاربران به این تمرین

user-qmDa
امتیاز:‌ 3278
تصحیح اتوماتیک 0 0
‎پایتون‎
10 اسفند 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

user-ixnb
امتیاز:‌ 3663
تصحیح اتوماتیک 0 0
‎پایتون‎
24 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

MarsBoy
امتیاز:‌ 7491
تصحیح اتوماتیک 0 0
‎پایتون‎
24 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Amin
امتیاز:‌ 20573
تصحیح اتوماتیک 0 0
‎پایتون‎
24 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*

تمرینات مرتبط