[문제]
The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
Let us list the factors of the first seven triangle numbers:
1: 1
3: 1,3
6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28
We can see that 28 is the first triangle number to have over five divisors.
What is the value of the first triangle number to have over five hundred divisors?
[풀이]
import math
n=2
isDivisor500 = True
while isDivisor500:
triangleNumber = sum(range(1,n))
result = 0
for i in range(1, int(math.sqrt(triangleNumber))):
if triangleNumber % i ==0:
if i * i==triangleNumber:
result +=1
else:
result +=2
if result>=500:
print(triangleNumber)
print(result)
isDivisor500=False
n+=1
'''
math.sqrt를 사용해서 시간을 좀 줄였다
평소에 쓰던 while True를 쓰지 않고 True를 변수에 넣어서 사용했다.
(이렇게 쓰는게 가독성에 더 좋다고 피드백을 받았다)
점점 난이도가 어려워져서 문제푸는 속도가 좀 더디다..
한번에 풀리지 않다보니까 의욕도 점점 없어지는 것 같아서
오일러 프로젝트와 함께 pandas에 대해서 공부하려고 한다!
pandas다음은 텐서플로우를 할 예정이다
'''
'파이썬' 카테고리의 다른 글
[Project Euler]14. Longest Collatz sequence (0) | 2021.06.09 |
---|---|
[Project Euler]13. Large sum (0) | 2021.06.07 |
[Project Euler]11. Largest product in a grid (0) | 2021.06.02 |
[Project Euler]10. Summation of primes (0) | 2021.06.01 |
[Project Euler]9. Special Pythagorean triplet (0) | 2021.05.29 |