私がこの挑戦をしてきたすべての年のうち、2017年は素数であった最初の年です。したがって、問題は素数とその性質についてです。
あなたの仕事は、入力として任意の大きな正の整数を受け取り、2,017-friableであるかどうか、つまりその数の最大素因数が2,017以下であるかどうかを出力または返すプログラムまたは関数を生成することです。
いくつかの入力例とその出力:
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
あなたのプログラムは、文字通り出力する必要がないtrue
とfalse
-任意のtruthyやfalsy値、および実際には真と偽のケース全体で一貫している任意の二つの異なる出力が細かいです。
ただし、ソースコードで素数を使用することはできません。プライムには2つのタイプがあります。
素数リテラルを表す文字、または文字のシーケンス。
文字
2
、3
、5
、と7
数字が有効なトークンでの言語で違法です。数は
141
、それが含まれているため、違法である41
にもかかわらず、1
及び4
それ以外の場合は有効です。文字
B
andD
(またはb
andd
)は、CJamやBefungeなど、通常11および13として使用される言語では違法です。
素数のUnicode値を持つ文字、またはエンコーディングに素数のバイトが含まれる文字。
%)+/5;=CGIOSYaegkmq
ASCIIでは、文字はキャリッジリターン文字と同様に違法です。ó
UTF-8では、エンコーディングに文字が含まれているため、この文字は無効0xb3
です。ただし、ISO-8859-1では、エンコードは単に0xf3
であり、これは複合であるため問題ありません。
任意の言語で上記を実行する最短のコードが優先されます。
=
ほとんどの標準言語のルールの欠如...