[파이썬] 백준 9단계 - 약수, 배수와 소수
배수와 약수 (5086)
while True :
a,b = map(int,input().split())
if a==0 and b==0:
break
else:
if b%a == 0 :
print('factor')
elif a%b==0:
print('multiple')
else:
print('neither')
소수 (2581)
M = int(input())
N = int(input())
b = list(range(M,N+1))
prime = []
for i in range(len(b)): # 소수찾는루프
if b[i] == 1 : # 1제외
continue
elif b[i] == 2 : # 2예외
prime.append(b[i])
continue
else : # 3부터
for j in range(2,b[i]+1):
if (b[i]%j == 0) and (j != b[i]) : # 나뉘면 다음
break
if j == b[i] :
prime.append(b[i])
if prime == []:
print(-1)
else :
print(sum(prime))
print(min(prime))
소수 찾기 (1978)
N = int(input())
b = list(map(int,input().split()))
count = 0
for i in range(N):
if b[i] == 1 : # 1제외
continue
elif b[i] == 2 : # 2예외
count += 1
continue
else : # 3부터
for j in range(2,b[i]+1):
if (b[i]%j == 0) and (j != b[i]) : # 나뉘면 다음
break
if j == b[i] :
count += 1
print(count)
소수 입력 N이 2부터 N-1까지는 안나누어 떨어지는거 이용
소인수 분해 (11653)
N = int(input())
i=2
while True:
if N == 1:
break
if N%i == 0 :
print(i)
N /= i
else :
i += 1
약수 구하기 (2501)
N,K = map(int,input().split())
temp = []
if K == 1:
print(1)
else:
for i in range(1,int(N**(1/2))+1):
if N%i == 0:
temp.append(i)
temp.append(int(N/i))
a = set(temp)
b = list(temp)
b.sort()
if len(b)<K:
print(0)
else :
print(b[K-1])
약수들의 합 (9506)
while True:
n = int(input())
if n == -1:
break
else:
temp = []
for i in range(1,int(n**(1/2))+1):
if n%i == 0 :
temp.append(i)
temp.append(int(n//i))
a = set(temp)
b = list(a)
b.sort()
if sum(b)-n == n:
for i in range(len(b)-1):
if i == 0:
print(n,'=',b[i],end=' ')
else :
print('+',b[i],end=' ')
else :
print(f'{n} is NOT perfect.')
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 백준 - 14단계 집합과 맵 (0) | 2023.04.18 |
---|---|
[파이썬] 백준 - 13단계 정렬 (0) | 2023.04.17 |
[파이썬] 백준 - 10단계 기하: 직사각형과 삼각형 (0) | 2023.04.08 |
[파이썬] 백준 - 7단계 2차원 배열 (0) | 2023.04.06 |
[파이썬] 백준 - 8단계 입출력과 사칙연산 (0) | 2023.04.05 |
[파이썬] 프로그래머스 레벨2 (0) | 2023.04.02 |
[파이썬] 프로그래머스 레벨1 (0) | 2023.03.30 |
댓글