제가이 도전을해온 몇 년 중 2017 년이 첫 번째 해였습니다. 따라서 질문은 소수와 속성에 관한 것입니다.
당신의 임무는 임의의 큰 양의 정수를 입력으로 취하고 그 숫자가 2,017-friable 인지 여부, 즉 그 숫자의 가장 큰 소수가 2,017 이하 인지 여부를 출력하거나 반환하는 프로그램이나 함수를 생성하는 것 입니다.
일부 예제 입력 및 출력 :
1 (has no prime factors)
true
2 (= 2)
true
80 (= 2 x 2 x 2 x 2 x 5)
true
2017 (= 2017)
true
2019 (= 3 x 673)
true
2027 (= 2027)
false
11111 (= 41 x 271)
true
45183 (= 3 x 15061)
false
102349 (= 13 x 7873)
false
999999 (= 3 x 3 x 3 x 7 x 11 x 13 x 37)
true
1234567 (= 127 x 9721)
false
4068289 (= 2017 x 2017)
true
여러분의 프로그램은 말 그대로 출력이없는 true
및 false
- 어떤 truthy 또는 falsy 값, 실제로 true와 false의 경우 일관성있는 모든 두 개의 서로 다른 출력은 괜찮이다.
그러나 소스 코드에는 소수 를 사용할 수 없습니다 . 프라임은 두 가지 유형으로 제공됩니다.
소수 리터럴을 나타내는 문자 또는 문자 시퀀스.
문자는
2
,3
,5
, 및7
번호가 유효한 토큰입니다 언어로 불법입니다.숫자
141
가 포함되어 있기 때문에 불법41
하더라도,1
하고4
그렇지 않으면 유효합니다.CJam 또는 Befunge와 같이 일반적으로 11 및 13으로 사용되는 언어에서는 문자
B
및D
(또는b
및d
) 문자 가 불법입니다.
소수의 유니 코드 값이 있거나 인코딩에 소수의 바이트가 포함 된 문자
%)+/5;=CGIOSYaegkmq
캐리지 리턴 문자뿐만 아니라 ASCII에서 문자 가 유효하지 않습니다.ó
인코딩에 UTF-8 문자 가 있으므로 문자 가 잘못되었습니다0xb3
. 그러나 ISO-8859-1에서 인코딩은 간단합니다0xf3
. 이는 합성이므로 괜찮습니다.
모든 언어에서 위의 작업을 수행하는 가장 짧은 코드가 이깁니다.
=
대부분의 표준 언어를 배제 하는 부족 ...