Menu
CoddyTech
flag Ar iconالعربيةdown icon

Happy Number

ابدأ بعدد صحيح موجب n واستبدله بمجموع مربعات أرقامه، وكرر ذلك مرارًا. على سبيل المثال، يصبح 12 هو 1² + 2² = 5. إذا وصلت هذه العملية إلى 1، فإن n عدد سعيد؛ وإلا فإنه يظل يدور إلى الأبد عبر أعداد لا تتضمن 1 مطلقًا. أعد true إذا كان n عددًا سعيدًا، وfalse إذا لم يكن كذلك.

الدالة

isHappy(n: integer) → boolean
ninteger
العدد الصحيح الموجب المراد اختباره
تُرجعboolean
صحيح إذا أدى تكرار مجموع مربعات الأرقام إلى الوصول إلى 1، وخطأ إذا استمر في الدوران إلى الأبد

القيود

  • 1 ≤ n ≤ 231-1

أمثلة

المدخلات
n = 7
المخرجات
true
الشرح
يصبح 7 هو 49، ثم 4² + 9² = 97، ثم 130، ثم 10، ثم 1. تصل العملية إلى 1، لذا فإن 7 عدد سعيد.

lock icon+16 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

كيف يمكنك عدّ الأعداد السعيدة من 1 إلى 10^6 بسرعة، مع إعادة استخدام الإجابات للأعداد الأقل من 1000 بدلاً من البدء من الصفر لكل عدد؟

إعادة ضبط الشيفرة
def isHappy(n):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

n = 7

المتوقع

true