Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- deep learning
- 딥러닝
- 역전파
- neural network
- c#
- backpropagation
- 신경망
- 수달
- 오토인코더
- CNN
- mnist
- 비샤몬당
- project euler
- 역전파법
- 소인수분해
- 히토요시
- 오일러 프로젝트
- 전처리
- Python
- 소수
- Convolutional Neural Network
- 베이지안
- A Neural Algorithm of Artistic Style
- 자전거 여행
- 냥코 센세
- Autoencoder
- Gram matrix
- bayesian
- SQL
- 합성곱 신경망
Archives
- Today
- Total
통계, IT, AI
[Project Euler] 55. Lychrel numbers, 56. Powerful digit sum 본문
IT/PROJECT_EULER
[Project Euler] 55. Lychrel numbers, 56. Powerful digit sum
Harold_Finch 2017. 7. 26. 20:551. 55번 개요
문제는 이곳에서 확인할 수 있다. 47을 거꾸로 한 뒤 서로 더하면, 47+74=121이 되며 121은 회문자 palindrome이다. 349는 이 과정을 세번을 거치면 7337이 되어 회문자가 된다. 증명된 것은 아니지만, 어떤 숫자들은 거꾸로 한뒤 서로 더하는 과정을 아무리 거쳐도 회문자가 되지 않는다고 추측된다. 이러한 숫자들을 Lychrel 수라고 한다. 10,000보다 작은 Lycherel 수의 개수를 구하는 것이 문제의 목표이다. 단, 50번 안에 회문자가 되지 않으면 그 수는 Lycherel 수라고 가정한다.
2. 55번 구현
# -*- coding: utf-8 -*- # Project Euler 55 def reverse_n(n): return int(str(n)[::-1]) ans = 0 for tmp_n in range(1, 10000): n = tmp_n + reverse_n(tmp_n) for i in range(1, 50): if n == reverse_n(n): break n += reverse_n(n) else: ans += 1 print(ans)
답은 249이다.
3. 56번 개요
문제는 이곳에서 확인할 수 있다. \(10^{100}\)은 아주 큰 수이지만 각 자리수의 합은 1에 불과하다. \(a, \ b < 100\)인 자연수 \(a, \ b\)에 대하여, \(a^b\)의 각 자리수의 합의 최대값을 구하는 것이 문제의 목표이다.
4. 56번 구현
# -*- coding: utf-8 -*- # Project Euler 56 print(max(sum(map(int, str(a**b))) for a in range(1, 100) for b in range(1, 100)))
답은 972이다.
'IT > PROJECT_EULER' 카테고리의 다른 글
[Project Euler] 58. Spiral primes (0) | 2017.07.27 |
---|---|
[Project Euler] 57. Square root convergents (0) | 2017.07.26 |
[Project Euler] 54. Poker hands (0) | 2017.07.26 |
[Project Euler] 53. Combinatoric selections (0) | 2017.07.22 |
[Project Euler] 52. Permuted multiples (0) | 2017.07.20 |
Comments