公平に言えば、これはStackExchangeの質問に基づいていますが、良い質問です。
挑戦はかなり簡単です:
- 一連の数字を取る
- 文字列内の最大の連続する素数を見つけて出力します
得点:
- 最も少ない数のキャラクターが勝利します。
- ビクターはゴルフスクリプトのエントリーになる可能性がありますが、私たちはそれに対してそれを保持することはありません。
- 私が実際に緑色のボタンをチェックしていないことに気付いたときに、当選者に授与されます。
仮定:
- 文字列は数字のみです
- 文字列に文字が含まれている場合、動作が未定義である可能性があります
- 文字列に少なくとも1つの素数が含まれています
- 文字列に1つの有効な素数が含まれていない場合、動作が未定義である可能性があります
- 速度は制約ではありません
- 高速なアルゴリズムよりも短い素数アルゴリズムを使用します。
- エントリが最終的に終了する場合、それは問題ありません。宇宙の熱死の前にそれが証明可能であることを確認してください。
- 文字列の長さは15文字未満と想定できます
例えば:
>> Input: 3571
<< Output: 3571
>> Input: 123
<< Output: 23
>> Input: 1236503
<< Output: 236503
>> Input: 46462
<< Output: 2
>> Input: 4684
<< Output: ValueError: max() arg is an empty sequence
>> Input: 460
<< Output: 0 # Note, zero is not a prime, but the above string has no valid prime
>> Input: 4601
<< Output: 601
>> Input: "12 monkeys is a pretty good movie, but not as good as se7en"
<< Output: ValueError: Fight Club was also good, I find Brad Pitt to be a consistantly good actor.
可能な実装:
- 入力のすべての部分文字列を検索し、それらが素数であるかどうかを確認します。- Legostormtroopr(オリジナル)
- 入力より小さいすべての整数を見つけ、それらが入力にあるかどうかを確認し、それが素数かどうかを確認します-Ben Reich
- 入力よりも小さいすべての素数のリストを取り、それが入力にあるかどうかを確認します-daniero