양의 정수의 집합은 d_1 d_2 ... d_k
A는 인수 분해 양의 정수의 n
경우
d_1 * d_2 * ... * d_k = n
각 양의 정수에는 고유 한 소인수 분해 가 있지만 일반적으로 일부 항이 복합 인 인수 분해도 있습니다. 예 :
12 = 6 * 2 = 4 * 3 = 3 * 2 * 2
단일 양의 정수를 입력으로 사용하고 고유 한 인수 분해의 전체 목록을 반환하거나 인쇄하는 프로그램, 함수, 동사 또는 이와 유사한 프로그램을 작성하십시오. 인수 분해는 임의의 순서로 생성 될 수 있으며, 그 항은 임의의 순서로있을 수 있지만, 둘은 서로 순열되지 않아야합니다. Factorisations는 포함되지 않을 수 있습니다 1
이 개 예외 : 입력 n
당신이 인수 분해를 제공 할 수 있습니다 n*1
대신 n
; 입력 1
을 1
위해 빈 목록 대신 인수 분해 를 제공 할 수 있습니다 .
입력이 부호있는 32 비트 정수 범위에 있다고 가정 할 수 있습니다. 출력이 문자열 인 경우 인수 분해 내 숫자의 구분과 인수 분해의 구분이 명확하게 구분되어야하지만 (예를 들어)와 요소를 결합 할 필요는 없습니다 *
.
코드는 합리적인 데스크톱 컴퓨터에서 10 분 이내에 유효한 입력을 처리 할 수 있어야합니다.
예
1 [[]]
or [[1]]
or [[1 1]]
7 [[7]]
or [[7 1]]
or [[1 7]]
12 [[12] [6 2] [4 3] [2 3 2]]
or variants
16 [[2 2 2 2] [2 2 4] [2 8] [4 4] [16]]
or variants
901800900 a list of 198091 factorisations
1338557220 a list of 246218 factorisations
901800900
과1338557220
이를 확인할 수있는 위치 를 게시 할 수 있습니까 ? 내 코드는 해당 숫자에 대해 각각 2048 및 1024의 인수 분해를 제공하며 그 이유를 모르겠습니다.