일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Pix2Pix
- shrinkmatch
- mocov3
- BYOL
- Pseudo Label
- CoMatch
- Meta Pseudo Labels
- shrinkmatch paper
- 딥러닝손실함수
- cifar100-c
- dann paper
- 백준 알고리즘
- semi supervised learnin 가정
- dcgan
- ConMatch
- WGAN
- GAN
- mme paper
- CycleGAN
- 최린컴퓨터구조
- simclrv2
- tent paper
- remixmatch paper
- SSL
- 컴퓨터구조
- CGAN
- UnderstandingDeepLearning
- adamatch paper
- Entropy Minimization
- conjugate pseudo label paper
Archives
- Today
- Total
Hello Data
백준 알고리즘 9506번 [약수들의 합] 파이썬 본문
https://www.acmicpc.net/problem/9506
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
엄청 어려운 문제는 아니었다. while 문으로 input을 받고 for문으로 그리디하게 약수를 찾은 후 이러한 약수들을 리스트에 넘겨주었다. 그리고 문제에 대한 조건인 이 약수들의 합이 만약 자기자신이랑 같을 때 이를 완전수라고 하는데, 따라서 for문을 돌릴 때 자기자신을 포함하지 않았다. 완전수 일 때 이를 출력할 때는 for문을 이용해서 출력하고, 마지막 수일 때는 + 기호를 빼주는 출력을 해준다.
while True:
n = int(input())
if n == -1:
break
answer_list = []
for i in range(1, n):
if n % i == 0:
answer_list.append(i)
if sum(answer_list) == n:
print('{} ='.format(n), end=' ')
for j in answer_list:
if j != answer_list[-1]:
print('{} +'.format(j), end = ' ')
else:
print('{}'.format(j))
else:
print('{} is NOT perfect.'.format(n))
'백준알고리즘 > 수학' 카테고리의 다른 글
백준 알고리즘 25206번 [너의 평점은] 파이썬 (0) | 2023.04.14 |
---|---|
백준 알고리즘 3003번 [킹 퀸 룩 비숍 나이트 폰] 파이썬 (1) | 2023.04.12 |