Von all den Jahren, in denen ich diese Herausforderung gemeistert habe, war 2017 das erste Jahr, das eine Primzahl war. Die Frage wird also nach Primzahlen und ihren Eigenschaften sein.
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu erstellen, die eine willkürlich große positive Ganzzahl als Eingabe verwendet und ausgibt oder zurückgibt, ob die Zahl 2.017-brüchig ist oder nicht, dh ob der größte Primfaktor in dieser Zahl 2.017 oder weniger ist.
Einige Beispieleingaben und ihre Ausgaben:
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
Ihr Programm muss nicht buchstäblich true
und false
- irgendwelche wahren oder falschen Werte ausgeben, und tatsächlich sind zwei verschiedene Ausgaben, die über wahre und falsche Fälle hinweg konsistent sind, in Ordnung.
Sie dürfen jedoch keine Primzahlen in Ihrem Quellcode verwenden. Es gibt zwei Arten von Primzahlen:
Zeichen oder Zeichenfolgen, die Primzahlliterale darstellen.
Die Zeichen
2
,3
,5
, und7
sind illegal in Sprachen , in denen Zahlen gelten Token.Die Nummer
141
ist illegal, weil sie enthält41
, obwohl1
und4
sonst gültig sind.Die Zeichen
B
undD
(oderb
undd
) sind in Sprachen, in denen sie normalerweise als 11 und 13 verwendet werden, wie z. B. CJam oder Befunge, illegal.
Zeichen, die Unicode-Werte mit dem höchsten Wert haben oder in ihrer Codierung Bytes mit dem höchsten Wert enthalten.
Die Zeichen
%)+/5;=CGIOSYaegkmq
sind in ASCII unzulässig, ebenso wie das Wagenrücklaufzeichen.Das Zeichen
ó
ist in UTF-8 unzulässig, da die Codierung darin enthalten ist0xb3
. In ISO-8859-1 ist die Codierung jedoch einfach0xf3
, was zusammengesetzt ist und daher in Ordnung ist.
Der kürzeste Code, der in einer beliebigen Sprache für die oben genannten Aufgaben verwendet wird, gewinnt.
=
schließt die meisten Standardsprachen aus ...