설명
양의 정수 N을 소인수분해 한 결과를 출력하는데, 인수와 인수의 수를 출력하는 문제이다.
Solution
#20:00 - 20:08
#양의 정수 N을 소인수분해 한 결과를 출력해라
#메모리와 시간이 오래 걸리는 코드
import sys
input = sys.stdin.readline
def res(n):
for i in range(2, n + 1):
cnt = 0 #인수가 곱해진 횟수 초기화
while n % i == 0: #정수 n이 i로 나누어지면
cnt += 1 #인수가 곱해진 횟수 카운트
n /= i #몫을 n에 저장
if n % i != 0: #여기서 판단하기, 나누어 떨어지지 않으면 현재 인수와 곱해진 횟수 출력
print(i, cnt)
for _ in range(int(input())):
n = int(input())
res(n)
'BOJ 코딩테스트 > Silver' 카테고리의 다른 글
BOJ 9461번 : 파도반 수열 (Python/Silver 3) (0) | 2023.10.26 |
---|---|
BOJ 11053번 : 가장 긴 증가하는 부분 수열 (Python/Silver 2) (2) | 2023.10.22 |
BOJ 2960번 : 에라토스테네스의 체 (Python/Silver 4) (0) | 2023.09.23 |
BOJ 2583번 : 영역 구하기 (Python/Silver 1) (0) | 2023.09.22 |
BOJ 2468번 : 안전 영역 (Python/Silver 1) (0) | 2023.09.06 |