Em todos os anos em que faço esse desafio, 2017 é o primeiro ano em que é um número primo. Portanto, a questão será sobre números primos e suas propriedades.
Sua tarefa é produzir um programa ou função que receba um número inteiro positivo arbitrariamente grande como entrada e produza ou retorne com ou sem número friável de 2.017 - ou seja, se o maior fator primordial nesse número é 2.017 ou menos.
Alguns exemplos de entradas e suas saídas:
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
Seu programa não precisa literalmente produzir true
e false
- quaisquer valores verdadeiros ou falsos e, de fato, quaisquer duas saídas diferentes que são consistentes entre casos verdadeiros e falsos são boas.
No entanto, você não pode usar números primos no seu código-fonte. Primes vêm em dois tipos:
Caracteres ou sequências de caracteres que representam literais de números primos.
Os personagens
2
,3
,5
, e7
são ilegais em línguas onde os números são tokens válidos.O número
141
é ilegal porque contém41
, embora1
e4
são de outra maneira válida.Os caracteres
B
eD
(oub
ed
) são ilegais nos idiomas em que geralmente são usados como 11 e 13, como CJam ou Befunge.
Caracteres que possuem valores Unicode com valor inicial ou contêm bytes com valor inicial em sua codificação.
Os caracteres
%)+/5;=CGIOSYaegkmq
são ilegais no ASCII, assim como o caractere de retorno de carro.O caractere
ó
é ilegal no UTF-8 porque sua codificação está0xb3
nele. No entanto, na ISO-8859-1, sua codificação é simples0xf3
, composta e, portanto, correta.
O código mais curto para fazer o acima em qualquer idioma vence.
=
regras a maioria das linguagens de padrão ...