728x90
반응형
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- -1을 입력받았을 때 종료하기 위해 무한 반복문을 사용한다. while (True)
- 숫자를 입력받는다. n = int(sys.stdin.readline())
- 만약 -1을 입력했다면 종료한다. if (n == -1): break
- 그게 아니라면 약수를 저장할 리스트를 생성한다. li = list()
- 약수를 출력하기 위해 문자열로도 약수를 저장할 리스트를 생성한다. s = list()
- 1부터 n전까지 수를 불러오면 for i in range(1, n)
- 만약 불러온 수가 약수이면 if (n % i == 0)
- 해당 수를 리스트에 저장한다. li.append(i)
- 문자열 형식으로 바꿔서도 저장한다. s.append(str(i))
- 만약 약수의 합이 입력받은 수이면 if (sum(li) == n)
- 완전수이므로 n을 출력하고 이를 덧셈의 결과로 출력한다. print(n, end=' = ') print(' + '.join(s))
- 완전수가 아니면 n을 출력하고 지정 문구를 출력한다. print(n, end=' ') print('is NOT perfect.')
반응형
3. 소스코드
import sys
while (True):
n = int(sys.stdin.readline())
if (n == -1):
break
li = list()
s = list()
for i in range(1, n):
if (n % i == 0):
li.append(i)
s.append(str(i))
if (sum(li) == n):
print(n, end=' = ')
print(' + '.join(s))
else:
print(n, end=' ')
print('is NOT perfect.')
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 5073번 : 삼각형과 세 변 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.31 |
---|---|
[백준] 10101번 : 삼각형 외우기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.29 |
[백준] 9063번 : 대지 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.27 |
[백준] 15894번 : 수학은 체육과목 입니다 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.25 |
[백준] 2501번 : 약수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.21 |
[백준] 5086번 : 배수와 약수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.19 |
[백준] 2903번 : 중앙 이동 알고리즘 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.17 |
[백준] 2720번 : 세탁소 사장 동혁 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.16 |