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 truee 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, e7são ilegais em línguas onde os números são tokens válidos.O número
141é ilegal porque contém41, embora1e4são de outra maneira válida.Os caracteres
BeD(oubed) 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;=CGIOSYaegkmqsão ilegais no ASCII, assim como o caractere de retorno de carro.O caractere
óé ilegal no UTF-8 porque sua codificação está0xb3nele. 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 ...