코게 2018문제를 풀다가 큰 수를 소인수분해해야될 일이 생겼다. 파이썬으로 코딩을 해도 시간이 엄청 걸릴것같아서 툴을 찾아보다가 yafu라는 툴을 알게 되었다.
일단 저 사이트에서 다운을 받자.
압축을 풀면 저렇게 구성되어 있다. 딱봐도 cmd같은곳에서 실행하게 생겼다. 일단 그러면 환경변수 설정부터 해두자. 어떻게 하는지는 다 알겠지만 일단 혹시나 해서 이번만 설명을 하겠다.
1. 제어판 -> 시스템 및 보안 -> 시스템
2. 내 PC 우클릭 -> 속성
위의 두가지 방법중 아무거나 사용하면 된다. 그렇게 들어간 다음 고급 시스템 설정을 클릭한다.
그리고 고급을 클릭한다.
그다음 환경변수를 클릭한다.
그리고 Path를 더블클릭해준다. 들어가서 새로 만들기를 클릭한후에 아까 yafu를 깔았던 곳으로 가자.
위에 주소창을 클릭하면 저렇게 경로가 뜬다. 저걸 복붙해주고 확인을 클릭하면 환경변수 설정이 된다. 물론 yafu말고 모든 환경변수 설정을 이렇게 하면 된다.
이제 명령 프롬프트를 들어가서 yafu-x64를 실행시켜보자. 위의 사진처럼 오류가 안나면 성공한것이다.
사용방법은 yafu-x64 factor(숫자) -threads2를 해주면된다. 물론 threads를 안하면 1로 기본 세팅된다. 보통 그냥 기본 세팅으로 하면 될것이다.
계산기를 보니 저기 3223857은 0x313131에 대한 10진수 값이다.
10진수를 넣으면 그냥 그 10진수가 나온다.
내가 풀 n은 띄워져 있어서 되는지 봤더니 그건 안되는것같다.
그럼 파이썬으로 코딩해서 공백을 없애주자!
이렇게 나온다. 다 나오기를 기다릴려고 했는데 너무 오래걸릴 것 같아서 그냥 중간과정만 캡쳐했다. 하여튼 이렇게 yafu라는 툴을 쓰면 된다.