Saturday, April 18, 2015

Project Euler #13 - 큰 수의 합

50자리 숫자 100개를 더했을 때 제일 앞자리 숫자 10개는?

파이썬이 큰 정수 다룰 때 얼마나 편한지 보여주는 좋은 예!

st = '''37107287533902102798797998220837590246510135740250
46376937677490009712648124896970078050417018260538

...

53503534226472524250874054075591789781264330331690'''

print str(sum([int(s) for s in st.split()]))[:10]

---
파이썬에서는 큰 정수를 편하고 안전하게 쓸 수 있다는 점을 다른 곳에 활용할 수도 있다. 예를 들어 sqrt(2)를 소수점 이하 100자리까지 구할 때, float로 다루는 것보다 2*10^200 의 sqrt를 찾는 게 더 쉽다.

No comments: