수학에 관한 이 질문 에서 영감을 얻었습니다 .
숫자 n의 소인수 분해를 P (n) = 2 a x 3 b x 5 c x ... 로 나타내십시오 .
( x 를 곱셈 기호로 사용 )
그러면 n 의 제수는 D (n) = (a + 1) x (b + 1) x (c + 1) ... 으로 나타낼 수 있습니다 .
따라서, 우리는 쉽게의 약수 수 있다고 말할 수 2N가 인 D (2N) = (a + 2) × (b + 1) × (c + 1) ... ,
의 약수의 개수 3N은 인 D (3N ) = (a + 1) x (b + 2) x (c + 1) ... 등
입니다.
도전:
특정 제수 입력시 이러한 속성을 사용하여 n 을 계산하는 프로그램 또는 함수를 작성하십시오 .
입력:
다음과 같은 정의가 모두 포함 된 정수 집합 w, x, y, z를 호출 해 봅시다 .
- 모든 입력이 1보다 큽니다.
w, x, y, z > 1 - x 와 z 는 서로 다릅니다.
x<>z - X 와 Z는 - 소인
P(x)=x,D(x)=2그리고P(z)=z,D(z)=2 - 승 의 약수의 개수 XN은 -
D(xn)=w - Y는 의 약수의 개수 아연 -
D(zn)=y
연결된 질문에 주어진 문제의 경우 입력 예는 다음과 같습니다 (28, 2, 30, 3). 이것은로 변환 D(2n)=28과 D(3n)=30함께 n=864.
산출:
위의 정의 및 입력 제한을 충족 하는 단일 정수 n 입니다. 여러 숫자가 정의에 적합하면 가장 작은 값을 출력하십시오. 그러한 정수가 가능하지 않으면 거짓 값을 출력하십시오 .
예 :
(w, x, y, z) => output
(28, 2, 30, 3) => 864
(4, 2, 4, 5) => 3
(12, 5, 12, 23) => 12
(14, 3, 20, 7) => 0 (or some other falsey value)
(45, 13, 60, 11) => 1872
(45, 29, 60, 53) => 4176
규칙 :
- 표준 코드 골프 규칙 및 허점 제한이 적용됩니다.
- 표준 입 / 출력 규칙이 적용됩니다.
- 입력 번호는 어떤 순서로든 사용할 수 있습니다. 사용중인 순서를 답으로 지정하십시오.
- 입력 번호는 공백으로 구분, 배열, 개별 함수 또는 명령 줄 인수 등 원하는 형식으로 지정할 수 있습니다.
- 마찬가지로 STDOUT으로 출력하는 경우 주변 공백, 후행 줄 바꿈 등은 모두 선택 사항입니다.
- 입력 구문 분석 및 출력 형식화는이 과제의 흥미로운 기능이 아닙니다.
- 정상적인 복잡성과 정수 오버플로를 위해 챌린지 번호 n 에는 제한이 있습니다.
1 < n < 100000즉,이 범위 밖의 가능한 답변에 대해 걱정할 필요가 없습니다.
관련
따라서 가장 작은 솔루션이 100,000보다 큰 경우 솔루션 또는 0을 반환하도록 선택할 수 있습니까?
—
Dennis
@Dennis 코드가 짧아지면 반드시 확인하십시오. 받아 들일 것입니다.
—
AdmBorkBork