a, b가 각각 100미만일 때, a^b의 각 자리의 수를 모두 더한 값의 최대값은?
a, b를 2부터 99까지 바꿔가면서 모두 계산해 보면 된다.
길게 쓰면,
짧게 쓰면,
좀 더 생각해 보면.. 4^8 의 자리수 합보다는 49^89의 합이 훨씬 큰 거다. 그럼 a, b를 2부터 99까지 움직이는 대신 90부터 99까지 움직여봐도 될 것 같다.
오일러 프로젝트 projecteuler.net 의 문제들을 풀고 설명하는 스터디 공간입니다. 조언, 부연, 비판, 질문 환영합니다.
mx = 0 for a in range(2,100): n = a for b in range(2,100): n *= a mx = max(mx, sum([int(x) for x in str(n)])) print mx
print max([sum([int(x) for x in str(a**b)]) for a in range(2,100) for b in range(2,100)])
print max([sum([int(x) for x in str(a**b)]) for a in range(90,100) for b in range(90,100)])
No comments:
Post a Comment