[python 파이썬] 백준 2312번 수 복원하기

2021. 5. 8. 22:29Algorithm/BOJ

반응형

www.acmicpc.net/problem/2312

 

2312번: 수 복원하기

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

www.acmicpc.net

문제풀이법

 

1) 소인수분해하는 코드 

 

    num = int(sys.stdin.readline())

    su = 2  # 검사할 첫 값
    so = []  # 소인수 저장할 리스트 변수

    while su <= num:  # 검사 값이 num보다 작은 동안
        if num % su == 0:  # 나머지가 없으면
            so.append(su)  # 소인수 리스트에 추가
            num //= su  # num을 검사 값으로 나눔
        else:  # 나머지 있는 경우엔
            su += 1  # 검사 값 1 증가

    # print(so)  # 소인수 리스트 출력

 

 

2) 소인수 리스트에서 인수별 개수 세기 -> collections  라이브러리의 Counter 함수 사용하여 dictionary 형태로 값을 받고 반복문으로 출력한다. 

 

    dict = collections.Counter(so)
    for key in dict:
        print(key, dict[key])

 

 

참고자료

1. 소인수분해

blog.daum.net/sualchi/13720709

 

파이썬, 소인수 분해 예제

///////////////////////////////////////////////////////////////////// 강남 대치동 코딩 학원 안내 "정보 코딩의 시작과 피지컬 융합교육" 상담문의: 010-4440-0813 창의로봇발명학원(대치점):코딩/피지컬/..

blog.daum.net

 

2. 딕셔너리 반복문 출력

hun931018.tistory.com/56

 

파이썬(for 반복문, 딕셔너리, 딕셔너리와 for반복문, range)

for 반복문 for 반복자 in 반복할 수 있는 것: 코드 반복할 수 있는 것에는 문자열, 리스트, 딕셔너리, 범위 등이 있다. for 반복문은 리스트(반복할 수 있는 것)에 있는 요소 하나하나가 element라는 변

hun931018.tistory.com

 

반응형