때로는 잠들기 위해 가능한 한 높은 숫자로 계산하지만, 사각형 이 아닌 숫자는 건너 뜁니다 . 행에서 여러 숫자를 건너 뛸 때 약간의 스릴을 얻습니다. 예를 들어, 48,49,50
모두 제곱이 아닙니다 (48은 2 ^ 2, 49는 7 ^ 2, 50은 5 ^ 2로 나눌 수 있음).
이것은 몇 개의 임의의 제수로 나눌 수있는 인접 숫자의 가장 빠른 예에 대해 궁금해했습니다.
입력
입력은 하나 a = [a_0, a_1, ...]
이상의 요소를 포함하는 엄격하게 양의 정수 로 정렬 된 목록 입니다.
산출
출력은 나누기 , 나누기 및보다 일반적으로 나누는 n
속성을 가진 가장 작은 양의 정수 입니다 . 그러한 것이 존재 하지 않으면 , 기능 / 프로그램의 동작은 정의되지 않습니다.a_0
n
a_1
n+1
a_k
n+k
n
테스트 사례
[15] -> 15
[3,4,5] -> 3
[5,4,3] -> 55
[2,3,5,7] -> 158
[4,9,25,49] -> 29348
[11,7,5,3,2] -> 1518
채점
이것은 코드 골프입니다 . 가장 짧은 결과 (언어 당)가 자랑 할 권리를 얻습니다. 일반적인 허점은 제외됩니다.
답변
Wolfram Language (Mathematica) , 51 바이트
Mod[ChineseRemainder[1-Range@Length@#,#],LCM@@#,1]&
답변
껍질 , 7 바이트
VδΛ¦⁰ṫN
설명
VδΛ¦⁰ṫN Input is a list x.
N The list [1,2,3...
ṫ Tails: [[1,2,3...],[2,3,4...],[3,4,5...]...
V Index of first tail y satisfying this:
Λ Every element
⁰ of x
¦ divides
δ the corresponding element of y.
답변
MATL , 11 바이트
`Gf@q+G\a}@
` % Do ....
Gf % Convert input to [1,2,...,]
@q+ % Add current iteration index minus one, to get [n, n+1, ....]
G\ % Elementwise mod([n,n+1,...],[a_0,a_1,...])
a % ...while any of the modular remainders is nonzero.
} % Finally:
@ % Output the iteration index.
속도에 정확하게 최적화되지는 않았습니다 … 가장 큰 테스트 케이스는 MATL을 사용하는 데 1 분이 걸리고 MATLAB에서는 약 0.03이 걸립니다. MATL이 약간 더 많은 오버 헤드를 가질 가능성은 적습니다.
답변
자바 스크립트, 42 40 바이트
솔루션이 없거나 솔루션이 너무 큰 경우 재귀 오류가 발생합니다.
a=>(g=y=>a.some(x=>y++%x)?g(++n):n)(n=1)
Rick Hitchcock 의 포인터로 2 바이트 저장
시도 해봐
쉼표로 구분 된 숫자 목록을 입력하십시오.
o.innerText=(f=
a=>(g=y=>a.some(x=>y++%x)?g(++n):n)(n=1)
)(i.value=[5,4,3]);oninput=_=>o.innerText=f(i.value.split`,`.map(eval))
<input id=i><pre id=o>
답변
답변
05AB1E , 9 바이트
Xµā<N+sÖP
설명
Xµ # loop until counter equals 1
ā # push range [1 ... len(input)]
< # decrement
N+ # add current iteration index N (starts at 1)
sÖ # elementwise evenly divisible by
P # product
# if true, increase counter
# output N