본문 바로가기

알고리즘

나중에 다시볼 알고리즘 백준 11653 소인수분해

간단한 소인수 분해이지만 나에게는 익숙지 않아서 나중에 보려고 적어놓는다.

 

문제:https://www.acmicpc.net/problem/11653

 

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

소인수 분해에 대해서 쭉 생각해봤는데 소수를 쭉 구해놓고 그것들을 나눠지는 순서대로 대입해서 구하는 방법을 생각해봤는데 소수들이 무한이 많아 아주 크기가 큰 소수가 들어있는 테스트 케이스를 성공 못할거라 생각해서 한번더 생각해본결과

 

2부터 나누기 시작해서 안될경우 1씩 증가하면서 나누고 조건이 나누려는수가 1이 아니면 멈추는 방법을 택하면

4나 이런 소수가 아닌것들로 나눠지는것은 어짜피 앞전에서 2나 작은 소수로 나눠지는 경우의 수로 걸러지고

후에 큰 소수들까지 가서 저절로 나눠지기에 이방법을 사용하여 풀었다.

 

 

give = int(input())

sosumoem = []

sosu = 2





while give != 1:

    if (give/sosu) != (give//sosu):

        sosu += 1 

    else:

        give = (give/sosu)

        sosumoem.append(sosu)




for i in sosumoem:

    print(i)

 

변수를 개떡같이 이름지어서 웃기다 ㅋㅋㅋ

'알고리즘' 카테고리의 다른 글

파이썬 자료구조 컨닝페이퍼  (0) 2022.10.03
시간복잡도에 대해서 알고가자 크흐흡  (0) 2022.10.02
백트래킹 개념정리  (0) 2022.04.11
브루트포스 개념정리  (0) 2022.04.01
파이썬 기본 문법 정리  (0) 2022.03.31