최근 프라임 / 프라임 인수 분해 관련 문제가 많이 있었으므로 다른 방식으로 진행하는 것이 재미있을 것이라고 생각했습니다.
주어진:
- 양의 정수
n, 및 - 비어 있지 않은 양의 정수 목록
f
전체 프로그램 또는 정수 작은을 찾을 수있는 기능을 작성 i하도록 i >= n하고 i있는 요소의 음이 아닌 정수 능력의 산물입니다 f.
예 :
가정 해 봅시다
n = 11, f = [2, 3, 5].처음 몇 가지 제품은 다음과 같습니다.
1 = 2^0 * 3^0 * 5^0 2 = 2^1 * 3^0 * 5^0 3 = 2^0 * 3^1 * 5^0 5 = 2^0 * 3^0 * 5^1 4 = 2^2 * 3^0 * 5^0 6 = 2^1 * 3^1 * 5^0 10 = 2^1 * 3^0 * 5^1 9 = 2^0 * 3^2 * 5^0 15 = 2^0 * 3^1 * 5^1 25 = 2^0 * 3^0 * 5^2 8 = 2^3 * 3^0 * 5^0 12 = 2^2 * 3^1 * 5^0 => smallest greater than (or equal to) 11, so we output it. 20 = 2^2 * 3^0 * 5^1 18 = 2^1 * 3^2 * 5^0 30 = 2^1 * 3^1 * 5^1 50 = 2^1 * 3^0 * 5^2 27 = 2^0 * 3^3 * 5^0 45 = 2^0 * 3^2 * 5^1 75 = 2^0 * 3^1 * 5^2 125 = 2^0 * 3^0 * 5^3가정 해 봅시다
n=14, f=[9, 10, 7].다시, 처음 몇 가지 제품 :
1 = 7^0 * 9^0 * 10^0 7 = 7^1 * 9^0 * 10^0 9 = 7^0 * 9^1 * 10^0 10 = 7^0 * 9^0 * 10^1 49 = 7^2 * 9^0 * 10^0 => smallest greater than (or equal to) 14, so we output it. 63 = 7^1 * 9^1 * 10^0 70 = 7^1 * 9^0 * 10^1 81 = 7^0 * 9^2 * 10^0 90 = 7^0 * 9^1 * 10^1 100 = 7^0 * 9^0 * 10^2
테스트 사례 :
n, f -> output
10, [2, 3, 5] -> 10
17, [3, 7] -> 21
61, [3,5,2,7] -> 63
23, [2] -> 32
23, [3] -> 27
23, [2, 3] -> 24
31, [3] -> 81
93, [2,2,3] -> 96
91, [2,4,6] -> 96
1, [2,3,5,7,11,13,17,19] -> 1
151, [20,9,11] -> 180
11616, [23,32] -> 12167
11616, [23,32,2,3] -> 11664 = 2^4 * 3^6
5050, [3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210] -> 5103 = 3^6 * 7
12532159, [57, 34, 12, 21] -> 14183424 = 12^5 * 57
규칙
- 당신은 그 가정 할 수
f적어도 하나 개의 요소가 포함되며, 모든 요소는f1보다 커야합니다. - 원하는 경우
f감소 / 증가 순서로 정렬되어 있다고 가정 할 수도 있습니다 (그러나 지정하십시오). - 원하는
f경우 요소 수를 선택적으로 가질 수 있습니다 . - 문자열로 출력 할 수 있습니다.
- 이것은 code-golf 이므로 각 언어에서 가장 짧은 바이트 단위의 대답이 이깁니다!
- 기본 I / O 규칙이 적용되며 표준 허점이 금지됩니다.
- 설명이 권장됩니다.
∞절약3합니다 .-Log@0 (doesn't work on TIO, but works fine on desktop Mathematica). Also,보다 짧은 바이트Length@{##}입니다.