Sur toutes les années où je fais ce défi, 2017 est la première année qui a été un nombre premier. La question portera donc sur les nombres premiers et leurs propriétés.
Votre tâche consiste à créer un programme ou une fonction prenant un nombre entier positif arbitrairement élevé en entrée et en sortie ou en renvoyant, que le nombre soit ou non friable de 2 017 , c'est-à-dire que le plus grand facteur premier de ce nombre soit de 2 017 ou moins.
Quelques exemples d'entrées et leurs sorties:
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
Votre programme n'a pas à produire littéralement true
et false
- toutes les valeurs de vérité ou de fausseté, et en fait, deux résultats différents qui sont cohérents entre les cas vrais et les cas faux sont acceptables.
Cependant, vous ne pouvez pas utiliser les nombres premiers dans votre code source. Les primes sont de deux types:
Caractères, ou séquences de caractères, qui représentent des littéraux en nombres premiers.
Les personnages
2
,3
,5
et7
sont illégales dans les langues où les nombres sont des jetons valides.Le nombre
141
est illégal car il contient41
, même si1
et4
sont par ailleurs valables.Les caractères
B
etD
(oub
etd
) sont illégaux dans les langues où ils sont généralement utilisés comme 11 et 13, tels que CJam ou Befunge.
Caractères comportant des valeurs Unicode à valeurs principales ou contenant des octets dans leur codage.
Les caractères
%)+/5;=CGIOSYaegkmq
sont illégaux en ASCII, ainsi que le caractère de retour chariot.Le caractère
ó
est illégal en UTF-8 car son encodage en contient0xb3
. Cependant, dans ISO-8859-1, son codage est simple0xf3
, composite et donc correct.
Le code le plus court pour faire ce qui précède dans n'importe quelle langue gagne.
=
règles sur la plupart des langages standard ...