Showing posts with label list comprehension. Show all posts
Showing posts with label list comprehension. Show all posts

Wednesday, May 6, 2015

Project Euler #29 - distinct powers

프로젝트 오일러 29번
2이상 100 이하 a, b에 대해 a^b 형태로 표현할 수 있는 수는 몇 개?

4^2 == 2^4 이런 것 때문에 소인수 분해하고 지지고 볶고 해 봤는데.. 그냥 다 세는 게 나은 듯 하다. 기껏 100*100번 loop도는 건데..

print len({a**b for a in range(2,101) for b in range(2,101)})

파이썬의 리스트 표현 굳!!


Wednesday, April 15, 2015

Project Euler #6 - Sum square difference

1부터 100까지 더한 다음에 제곱한 수에서, 1, 4, 9, ..., 10000 을 빼면?

파이썬스럽게 list comprehension 을 써 봤다.

sum(range(101)) ** 2 - sum([x*x for x in range(101)])

문제 풀이 끝.


물론 이렇게 할 수도 있다.

sm1 = sm2 = 0
for i in range(101):
    sm1 += i
    sm2 += i*i

print sm1**2 - sm2



요기 페이지 설명에 따르면 파이썬을 만든 귀도 반 로썸 아저씨는 람다함수보다 list comprehension 을 선호한다고 한다. 많이 써 보자!