De todos los años que llevo haciendo este desafío, 2017 es el primer año que ha sido un número primo. Entonces la pregunta será sobre los números primos y sus propiedades.
Su tarea es producir un programa o función que tome un entero positivo arbitrariamente grande como entrada, y genere o devuelva si el número es 2.017-friable , es decir, si el factor primo más grande en ese número es 2.017 o menos.
Algunos ejemplos de entradas y sus salidas:
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
Su programa no tiene que emitir literalmente true
y false
- cualquier valor verdadero o falso, y de hecho, dos salidas diferentes que sean consistentes entre los casos verdadero y falso están bien.
Sin embargo, no puede usar ningún primo en su código fuente. Los premios vienen en dos tipos:
Caracteres, o secuencias de caracteres, que representan literales de números primos.
Los personajes
2
,3
,5
, y7
son ilegales en lenguas cuando los números son símbolos válidos.El número
141
es ilegal porque contiene41
, aunque sea válido1
y de4
otra manera.Los caracteres
B
yD
(ob
yd
) son ilegales en los idiomas en los que generalmente se usan como 11 y 13, como CJam o Befunge.
Caracteres que tienen valores Unicode con valores primos o que contienen bytes con valores primos en su codificación.
Los caracteres
%)+/5;=CGIOSYaegkmq
son ilegales en ASCII, así como el carácter de retorno de carro.El carácter
ó
es ilegal en UTF-8 porque tiene su codificación0xb3
. Sin embargo, en ISO-8859-1, su codificación es simple0xf3
, que es compuesta y, por lo tanto, está bien.
El código más corto para hacer lo anterior en cualquier idioma gana.
=
reglas descarta la mayoría de los idiomas estándar ...