تحدي "العدد الغامض " (Mysterious Number)
العدد الغامض هو عدد صحيح إذا قمت بتربيعه، ثم عكست ترتيب أرقامه، فستحصل على عدد آخر قابل للقسمة على العدد الأصلي.!
المطلوب
اكتب دالة ترد لي جميع الاعداد الغامضة في نطاق 1 – 100.
تحدي "العدد الغامض " (Mysterious Number)
العدد الغامض هو عدد صحيح إذا قمت بتربيعه، ثم عكست ترتيب أرقامه، فستحصل على عدد آخر قابل للقسمة على العدد الأصلي.!
المطلوب
اكتب دالة ترد لي جميع الاعداد الغامضة في نطاق 1 – 100.
دا حل بالتفصيل انت حرفيا ممكن تعملها ف بتاع 4 سطور
the_list = [i for i in range(1,101)]
the_numbers = []
def num_gero(number):
"""الداله دي بترجع الرقم بعد ما تشقلب"""
num = str(number)
result = num[-1::-1]
return int(result)
def sequer(number):
"""الداله دي بترج تربيع الرقم"""
return number*number
def is_mysterious(num):
"""الداله دي بترجع العدد الغامض"""
first_step = sequer(num)
sec_step = num_gero(first_step)
if sec_step % num == 0 :
return True
else:
return False
for i in the_list:
if is_mysterious(i):
the_numbers.append(i)
print(the_numbers)
#الناتج :
#[1, 2, 3, 9, 11, 22, 26, 33, 48, 66, 87, 99]
حل احترافي :
def is_mysterious(num):
"""الداله بتحقق من العدد غامض و لا لا"""
squared = num * num
reversed_squared = int(str(squared)[::-1])
return reversed_squared % num == 0
mysterious_numbers = [i for i in range(1, 101) if is_mysterious(i)]
print(mysterious_numbers)
الحل المختصر :
def is_mysterious (number) : return int (str (number ** 2)[ : :-1]) % number == 0
for x in range (1,101) : print (x, " : ", is_mysterious (x))
#challenge 17: mysterious Number
def mysterious_Number(number=33):
n = str(number**2)[::-1]
if int(n) % number == 0:
print("The number",number,"is a mysterious Number")
else:
print("The number",number,"is not a mysterious Number")
mysterious_Number()