اكتشف الجداءات المتناظرة في نطاق معطى.
العدد المتناظر هو عدد يبقى كما هو عند عكس أرقامه.
على سبيل المثال، 121 عدد متناظر، أما 112 فليس كذلك.
إذا أُعطي نطاق من الأعداد، فابحث عن أكبر وأصغر الأعداد المتناظرة التي تكون جداءات لعددين ضمن هذا النطاق.
ينبغي أن يُرجع حلّك أكبر وأصغر الأعداد المتناظرة، مع عوامل كل منهما ضمن النطاق. وإذا كان لأكبر عدد متناظر أو أصغر عدد متناظر أكثر من زوج واحد من العوامل ضمن النطاق، فأرجِع جميع الأزواج.
بفرض أن النطاق هو [1, 9] (شاملًا الطرفين)...
وبفرض أن قائمة جميع الجداءات الممكنة ضمن هذا النطاق هي:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 15, 21, 24, 27, 20, 28, 32, 36, 25, 30, 35, 40, 45, 42, 48, 54, 49, 56, 63, 64, 72, 81]
الجداءات المتناظرة كلها أعداد من رقم واحد (في هذه الحالة):
[1, 2, 3, 4, 5, 6, 7, 8, 9]
أصغر جداء متناظر هو 1.
وعوامله هي (1, 1).
أكبر جداء متناظر هو 9.
وعوامله هي (1, 9) و(3, 3).
بفرض أن النطاق هو [10, 99] (شاملًا الطرفين)...
أصغر جداء متناظر هو 121.
وعوامله هي (11, 11).
أكبر جداء متناظر هو 9009.
وعوامله هي (91, 99).
لحل هذا التمرين، تحتاج إلى تنفيذ هاتين الدالتين:
largestPalindromesmallestPalindromeتستقبل الدالتان الحدين الأدنى والأعلى للعوامل، وتُرجعان زوجًا
(value, [(factor1, factor2)]) يحتوي على العدد المتناظر وأزواج العوامل المحتملة له.
يمكنك استخدام التوقيعات المقدمة إذا لم تكن متأكدًا من الأنواع، لكن لا تدعها تقيد إبداعك.
لا بأس في إرجاع عناصر مكررة في مصفوفة العوامل، ولا يهم ترتيب العوامل.
يُستحسن أن تفكر في استخدام خوارزمية مختلفة قليلًا للعثور على أعداد متناظرة صغيرة أو كبيرة.
سجّل في Exercism لتتعلّم وتتقن Haskell عبر 107 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.