عدد کاپریکار عددی مثبت است که اگر آن را به توان دو برسانیم، سپس عدد بهدستآمده را به دو قسمت جداگانه تقسیم کنیم و آنها را با هم جمع کنیم، مقدار حاصل برابر خود عدد اولیه باشد.
قوانین:
- اگر تعداد ارقام حاصلضرب زوج باشد، دو قسمت باید هماندازه باشند.
- اگر تعداد ارقام فرد باشد، نیمهی راست باید طولانیتر باشد، و نیمهی چپ میتواند صفر یا کوچکتر باشد.
تابعی بنویسید که یک عدد صحیح مثبت 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)
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات