다음과 같이 정의 된 숫자의 무한 시퀀스가 있다고 가정합니다.
1: 1 = 1
2: 1 + 2 = 3
3: 1 + 3 = 4
4: 1 + 2 + 4 = 7
5: 1 + 5 = 6
6: 1 + 2 + 3 + 6 = 12
7: 1 + 7 = 8
...
순서는 n
1과를 포함한 제수의 합입니다 n
.
x
입력 으로 양의 정수가 주어지면 n
보다 큰 결과를 생성하는 가장 낮은 숫자 를 계산하십시오 x
.
테스트 사례
f(100) = 48, ∑ = 124
f(25000) = 7200, ∑ = 25389
f(5000000) = 1164240, ∑ = 5088960
예상 출력
프로그램은 다음과 같이 제수와 제수의 합을 모두 반환해야합니다 n
.
$ ./challenge 100
48,124
규칙
이것은 코드 골프이므로 각 언어에서 가장 짧은 바이트 단위의 코드가 이깁니다.
답변
Brachylog , 9 바이트
∧;S?hf+S>
이 프로그램은 “output variable” .
에서 입력을 받고 “input variable”로 출력합니다 ?
.
온라인으로 사용해보십시오!
설명
∧;S?hf+S>
∧;S There is a pair [N,S]
? which equals the output
h such that its first element's
f factors'
+ sum
S equals S,
> and is greater than the input.
암시 적 변수 N
는 순서대로 증가하므로 가장 낮은 값이 출력에 사용됩니다.
답변
젤리 , 18 12 11 10 바이트
1Æs>¥#ḢṄÆs
Mr. Xcoder 덕분에 -1 바이트 !
작동 원리
1Æs>¥#ḢṄÆs - Main link. Argument: n (integer)
1 ¥# - Find the first n integers where...
Æs - the divisor sum
> - is greater than the input
Ṅ - Print...
Ḣ - the first element
Æs - then print the divisor sum
답변
Wolfram Language (Mathematica) , 53 바이트
{#,f@#}&@@Select[Range[x=#]+1,(f=Tr@*Divisors)@#>x&]&
2와 x + 1 사이의 모든 값을 시도합니다. 여기서 x는 입력입니다.
(이 Select
함수 {#,f@#}&
는 작동하는 모든 값의 목록을 반환하지만 함수 는이 값을 모두 입력으로 사용하고 첫 번째 입력을 제외한 모든 입력을 무시합니다.)