원문:
Problem 4
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.
Find the largest palindrome made from the product of two 3-digit numbers.
회문수는 두 방향으로 같게 읽히는 수를 말한다. 두 개의 2자리 수의 곱으로 만들어진 가장 큰 회문수는 9009 = 91
99 이다.
두 개의 3자리의 수의 곱으로 만들어진 가장 큰 회문수를 찾아라.
Python>>> def factor(num) :
for k in range(100, int(math.sqrt(num))) :
if num%k == 0 and (num//k>=100 and num//k<1000) :
return True
return False
>>> def check() :
for a in range(9, 0, -1) :
for b in range(9, -1, -1) :
for c in range(9, -1, -1) :
n = (10**5+1)*a+(10**4+10)*b+(10**3+10**2)*c
if factor(n) :
return n
>>> check()
접기
게시글에서 몇 개의 다른 코드를 보니 대단한 코드도 많이 있었다.
Python 2Ragzouken (Python)
In Python:def palindrome
(n
):
n = str(n)
return n == n[::-1]
print max(a*b for b in xrange(a, 1000) for a in xrange(110, 1000, 11) if palindrome(a*b))
접기
Python 3RockinAndres (Python)
Python
One line, using a list comprehension and string slice operations for palindrome checking.
max([x*y for x in range(100, 1000) for y in range(x, 1000) if str(x*y) == str(x*y)[::-1]])
접기
댓글 없음:
댓글 쓰기