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
- 2506
- 영재원
- 정보보호 영재원
- 5586
- 1547
- 10833
- 2501
- EOF
- 5086
- 차세대 보안 리더 양성
- 영재교육원
- 4101
- Python
- 10995
- 정보보호 영재교육원
- acmicpc
- BoB 후기
- 2605
- boj
- 공주대 정보보호
- 11109
- BOB
- 2965
- Best of the Best
- 2476
- 11943
- text
- 차세대 보안 리더 양성 프로그램
- BoB 7기
- 리뷰
Archives
- Today
- Total
짱해커가 되어보자
boj 2231 본문
문제
N에 대한 분해합의 가장 작은 생성자 M을 구하는 것
*분해합 : M + M의 각자릿 수의 합 = N
입력
: N(1 ~ 1,000,000)출력
: N
풀이
분해합 생성자를 구하기 위한 반복의 시작은 N에서 N자리의 길이 * 각 자릿수의 최대값인 9를 곱한 만큼 빼주어 시작하면 된다
import sys
n = int(input())
l = len(str(n))
for i in range(n-l*9 if n-l*9 > 0 else 0, n):
if(n == i + sum(int(i) for i in str(i))):
print(i)
sys.exit()
print(0)
Comments