백준 온라인 저지 2312번 수 복원하기

김선모·2023년 11월 8일

Baekjoon Online Judge

목록 보기
3/31
post-thumbnail

문제


양의 정수 N이 주어졌을 때, 이 수를 소인수분해 한 결과를 출력하는 프로그램을 작성하시오.

입력


첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다.

출력


각 테스트 케이스마다 각 인수와 그 인수가 곱해진 횟수를 한 줄씩 출력한다. 출력 순서는 인수가 증가하는 순으로 한다.

입력, 출력 예제


예제 입력 1 
2
6
24
예제 출력 1 
2 1
3 1
2 3
3 1

코드

for _ in range(int(input())) :
    N = int(input())  
    a = 2  
    m = []
    while N != 1:
        if N % a != 0:
            a += 1
        else:
            N //= a
            m.append(a)
    m1 = list(set(m))
    for i in range(len(m1)) :
        print('%d %d' % (m1[i], m.count(m1[i])))
profile
밑에 제 포트폴리오 사이트 들어갈 수 잇습니다

0개의 댓글