일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- compose
- 파이썬문법
- 오블완
- disposableeffect
- 백준파이썬
- 자바
- 리스트
- Python
- Provider
- programmers
- Kotlin
- 프로그래머스
- ContentProvider
- list
- 문자열
- Hilt
- 파이썬
- jetpack
- 배열
- android
- 티스토리챌린지
- 자료형
- 백준
- composelifecycle
- 자바set
- Dependency
- filternotnull()
- 자바리스트정렬
- Java
- nullpointerexception방지
Archives
- Today
- Total
study gomi
[백준/baekjoon] 9506번 약수들의 합 python(파이썬) 본문
728x90
반응형
내 제출
- 집합(set)을 이용해서 약수들을 구했다.
- 결과 출력은 format을 사용
- 입력마다 약수를 구해주어야 하므로 약수를 구하는 함수 작성 -> return은 정렬된 약수 목록
# 완전수? 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같은 경우
# 약수 구하기
def get_division_sorted(target):
set_division = {1}
# 자신을 제외한 약수들이 필요
# target//1의 연산 결과인 target 안 넣기 위해 2부터 loop
for i in range(2, target // 2+1):
if target % i == 0:
set_division.add(i)
set_division.add(target // i)
return sorted(set_division)
# 입력은 테스트 케이스마다 한 줄 간격으로 n이 주어진다.
while True:
n = int(input())
# 입력의 마지막엔 -1이 주어진다.
if n == -1:
break
# 약수 목록과 그들의 합
division_list = get_division_sorted(n)
division_sum = sum(division_list)
# n이 완전수라면
# 테스트케이스 마다 한줄에 하나씩 출력해야 한다.
if n == division_sum:
print(f'{n} = ', end='')
print(*division_list, sep=' + ')
# 완전수가 아니라면
else:
print(f'{n} is NOT perfect.')
특별히 어려운 점이 없어서 크게 적을 게 없다... 더 좋은 풀이가 있을 것 같다.
채점 결과
https://www.acmicpc.net/problem/9506
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
728x90
반응형
'Practice > Baekjoon' 카테고리의 다른 글
[백준/baekjoon] 1735번 분수 합 (파이썬) (0) | 2024.01.09 |
---|---|
[백준/baekjoon] 2798번 블랙잭 (파이썬, c++) (0) | 2024.01.05 |
[백준/baekjoon] 2501번 약수 구하기 python(파이썬) (1) | 2024.01.02 |
[백준/baekjoon] 2745번 진법 변환 python(파이썬) (0) | 2023.12.28 |
[백준/baekjoon] 25206번 너의 평점은 python(파이썬) (1) | 2023.12.28 |