誰にも言わないでください、しかし、私は叔父のタイムトラベルマシンにニックを入れました!私の叔父は素数に取りつかれていますが、それは機械に表示されます。彼はそれをプログラムして、合計が素数になる日付までしか行かないようにしています。
1947-08-15
1947 + 8 + 15 = 1970であるため、移動できません。これは素数ではありません。1947 + 7 + 25 = 1979であるため、に進むことができ1947-07-25
ます。これは素数です。ですから、インドの独立記念日を見に戻りたいのなら、数週間前に行って20日間待つ必要があるようです。
私が行きたい他の日付がいくつかありますが、同様に、目標日付の前の日付(または幸運なら、等しい)に移動する必要があります。しかし、私はイライラしているので、あまり待ちたくありません。そのため、使用できる日付のうち、目的の日付に最も近い日付を見つけたいと思います。
目標日を取得し、タイムマシンに入力する日付を与えるプログラムを作成できますか?部分が素数になる合計日付の前または最も近い日付ですか?
(このチャレンジでは、 予後グレゴリオ暦を使用しています。これは、人々が古いユリウス暦を使用していた期間でも現在のグレゴリオ暦を使用することを意味します。)
入力
- デート
- 理想的には、現在の時代(AD)の任意の日付。実際には、あなたの言語が自然に処理できるそのサブセット
- あなたが好きな単一の人間が読める形式で
出力
- 入力日付に最も近い日付。入力日付以下で、日付+月+年の合計が素数になります。
- あなたが好きな単一の人間が読める形式で
⁺:日、月、年などの「人間が読める」すべてのスペルが、どのような順序でも
テストケース
1947-08-15
=> 1947-07-25
1957-10-04
=> 1957-09-27
1776-07-04
=> 1776-07-04
999-12-12
=> 0999-12-10
2018-06-20
=> 2018-06-15
1999-01-02
=> 1998-12-29
1319-12-29
=> 1319-07-01
(質問の手助けをしてくれた@ Shaggy、@ PeterTaylor、@ Arnauldに感謝します。)
Fri Jul 25 02:46:39 CEST 1947
)