백준
백준 2231번: 분해합
2호0
2021. 9. 29. 20:53
https://www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
n = int(input())
len=len(str(n))
if n<11:#11보다 작으면 생성자가 없음
if n%2==0:
print(n//2)
exit(0)
print("0")
exit(0)
for i in range(9*len):
base = n-9*len+i
if base<0:#base가 0이하가 되면 생성자가 있어도
생성자의 값이 올바르게 나오지 않기 때문에 0이상으로 바꿔줌 base=abs(base)
temp = base
a = []
for _ in range(len):
a.append(temp%10)
temp = temp//10
if (base+sum(a)==n):
print(base)
exit(0)
print("0")
|
cs |