반응형
백준 [단계별로 풀어보기]: (9단계) "약수, 배수와 소수", python
1. 문제번호 및 정답비율

2. 문제별 필요 지식 및 풀이 포인트
더보기
#소수 찾기 1978
#다시풀기
3. 문제별 풀이 코드
#배수와 약수 5086
while True:
a, b = map(int, input().split())
if a>b:
if a % b == 0:
print('multiple')
else:
print('neither')
elif a<b:
if b % a ==0:
print('factor')
else:
print('neither')
elif a==b and b==0:
break
#약수 구하기 2501
n, k = map(int, input().split()) #6 3
arr = []
for i in range(1, n+1):
if n % i == 0:
arr.append(i) #[1 2 3 6]
if len(arr) < k:
print(0)
else:
print(arr[k-1])
#약수들의 합 9506
# '구분자'.join(리스트)
while True:
n = int(input())
if n == -1:
break
arr = []
for i in range(1,n):
if n % i == 0:
arr.append(i)
if sum(arr) == n: #약수의합 = n이면, n이 완전수이면
print(n,'=',' + '.join(str(i) for i in arr)) #TypeError: sequence item 0: expected str instance, int found
else:
print(n, 'is NOT perfect.')
#소수 찾기 1978
'''다시풀기'''
n = int(input()) #4
arr = list(map(int, input().split())) #1 3 5 7
cnt = 0 #소수의 개수
for i in arr:
for j in range(2, i+1): #1은 소수가 아니므로, 2부터 i까지
if i % j == 0:
if j == i: #숫자가 i 도달 후 나누어지면, 그 수는 소수로 볼 수 있기에 +1해준다
cnt += 1
break
print(cnt) #3
#소수 2581
m = int(input())
n = int(input())
number = []
for i in range(m,n+1): #m~n수
error = 0
if i > 1: #1은 소수가 아니므로 제외
for j in range(2,i): #2~i에서 나눠지는 수는 소수가 아니므로 error +1
if i%j == 0:
error += 1
break
if error == 0: #error가 없으면 소수
number.append(i)
if len(number) > 0:
print(sum(number))
print(min(number))
else:
print(-1)
#소인수분해 11653
n = int(input())
for i in range(2,n+1): #2부터 나누기
if n % i == 0:
while n % i == 0: #나눌 수 없을 때까지 나누기, 이때 n값 n/i로 초기화 시켜주면서
print(i)
n = n/i
반응형
'PS > BOJ : 단계별로 풀어보기' 카테고리의 다른 글
| 백준 [단계별로 풀어보기]: (11단계) "시간 복잡도", python (1) | 2024.09.01 |
|---|---|
| 백준 [단계별로 풀어보기]: (10단계) "기하: 직사각형과 삼각형", python (3) | 2024.09.01 |
| 백준 [단계별로 풀어보기]: (8단계) "일반 수학 1", python (5) | 2024.09.01 |
| 백준 [단계별로 풀어보기]: (7단계) "2차원 배열", python (2) | 2024.08.23 |
| 백준 [단계별로 풀어보기]: (6단계) "심화 1", python (2) | 2024.08.22 |