**تحديات بايثون**09

تحدي "عدد المرآة " (Mirror Number)

عدد المرآة هو عدد يصبح نفسه عندما يتم استبدال كل رقم فيه بمربعه ثم عكس النتيجة.

مثال على الطريقة :

لنأخذ العدد 23 :

تربيع الأرقام :

2² = 4
3² = 9
النتيجة 49 -------عكس العدد 94 .لا يساوي العدد الأصلي إذن 23 ليس عدد مرآة.

المطلوب :
اكتب دالة في بايثون ترد لي جميع الاعداد المرآة في نطاق اختياري مثلا من 10 – 1000…

إعجاب واحد (1)

الحل :

def is_mirror (number) :
  parts = []
  for part in str (number) : parts.append (int (part) ** 2)
  parts.reverse ()
  string = ""
  for part in parts : string += str (part)
  return True if int (string) == number else False 

for x in range (10,1001):
  print (x," :",is_mirror (x))
إعجابَين (2)

المطلوب :

def mirror_number(start, end): 
    all_mirror_numbers = []
    for i in range(start, end+1): 
        square_i = [str(int(j)**2) for j in str(i)]
        if str(i) == ''.join(square_i)[::-1]: 
            all_mirror_numbers.append(i)
    
    return all_mirror_numbers
إعجابَين (2)
#challenge 14: mirror number

def mirror_num1(start=100, end=1000):

    mirro_numbers = [
        num for num in range(start, end+1)
        if str(num) == "".join ( str (int (digit)**2 ) for digit in str(num)[::-1] )
        ]
    
    print(f"These are mirror numbers in the range {start} - {end}\n{mirro_numbers}")

mirror_num1(10,10000)
إعجابَين (2)