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 | 
                                        Tags
                                        
                                    
                                        
                                    - acmicpc
- text
- 1547
- 5086
- 리뷰
- 2965
- 5586
- EOF
- 영재원
- boj
- BoB 7기
- 10995
- Best of the Best
- 2506
- 정보보호 영재원
- 11109
- 영재교육원
- BoB 후기
- 공주대 정보보호
- Python
- BOB
- 차세대 보안 리더 양성
- 4101
- 2605
- 2476
- 2501
- 정보보호 영재교육원
- 11943
- 10833
- 차세대 보안 리더 양성 프로그램
                                        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