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