[ 2023-03-06 ๐Ÿ‘› TIL ]

Burkeyยท2023๋…„ 3์›” 6์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
51/157

๋ฐฑ์ค€ 9506๋ฒˆ

์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ n์ด ์ž์‹ ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์•ฝ์ˆ˜๋“ค์˜ ํ•ฉ๊ณผ ๊ฐ™์œผ๋ฉด, ๊ทธ ์ˆ˜๋ฅผ ์™„์ „์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.

ex) 6์€ 1, 2, 3, 6 ์„ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•œ ์•ฝ์ˆ˜๋“ค์˜ ํ•ฉ์ด n์˜ ๊ฐ’๊ณผ ๊ฐ™์€ ๋•Œ ์™„์ „์ˆ˜๊ฐ€ ๋œ๋‹ค.
-> 6 = 1 + 2 + 3

import sys

input = sys.stdin.readline

num_li = []

num = int(input())

while num != -1:
    num_li.append(num)
    num = int(input())
# -1์ด ์ž…๋ ฅ์„ ๋“ค์–ด์˜ฌ ๋•Œ๊นŒ์ง€ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.

for i in range(len(num_li)):
    li = []
    compare = 0
    for n in range(1, num_li[i]):
        if num_li[i] % n == 0:
            li.append(n) #์•ฝ์ˆ˜๋“ค์„ ๋ฐฐ์—ด์— ์ €์žฅ
            compare += n#์•ฝ์ˆ˜๋“ค์˜ ํ•ฉ ์ €์žฅ
    if compare == num_li[i]: #๋ชจ๋“  ์•ฝ์ˆ˜์˜ ํ•ฉ์ด n์˜ ๊ฐ’์ด ๊ฐ™์„ ๋•Œ ์ถœ๋ ฅ
        print('{} = '.format(num_li[i]), end='')
        print(' + '.join(map(str, li)))
    else:
        print('{} is NOT perfect.'.format(num_li[i]))
profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€