Kimseye söyleme, ama amcamın zaman yolculuğu makinesini çaldım! Amcam, asal sayılara takıntılı, ve makinede de gösteriyor - o sadece asal bir sayıya ulaşan tarihlere gidebilmesi için programladı.
Öyleyse gidemez 1947-08-15
çünkü 1947 + 8 + 15 = 1970, ki bu bir asal sayı değil. Bu , gidebilir 1947-07-25
çünkü 1947 + 7 + 25 = 1979, ki bu asal olan. Yani Hindistan'ın bağımsızlık kutlamalarını izlemeye geri dönmek istersem, birkaç hafta önce gidip 20 gün beklemem gerekecek gibi görünüyor.
Gitmek istediğim bazı başka tarihlerim var ve benzer bir şekilde hedef tarihimden önce (ya da şanslıysam) bir tarihe gitmeliyim, ki bu asal bir sayıya denk geliyor. Yine de sabırsızım ve çok fazla beklemek istemiyorum - bu yüzden kullanabileceğim tarihi hedef tarihime en yakın olanı bulmak istiyorum.
Bana hedef tarihimi alan ve bana zaman makinesine girmem gereken tarihi veren bir program yazabilir misiniz - parçaları asal sayıya ekleyen belirtilen tarihe eşit veya en yakın tarih?
(Bu zorluk için, proleptik Gregoryen takvimini kullanıyoruz - bu sadece insanların eski Julian takvimini kullandığı dönemlerde bile geçerli Gregoryen takvimini kullandığımız anlamına gelir.)
Giriş
- Buluşma
- ideal olarak, Cari Dönemde (AD) herhangi bir tarih; pratik olarak, dilinizin hangi alt kümesi olursa olsun, doğal olarak
- İstediğiniz insanca okunabilir herhangi bir biçimde
Çıktı
- Giriş tarihine en yakın tarih, girişe eşit veya daha küçük olan ve tarih + ay + yıl bir asal sayıya karşılık gelen tarih.
- İstediğiniz insanca okunabilir herhangi bir biçimde
⁺: "insan tarafından okunabilir" gün, ay ve yıldaki gibi
Test durumları
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
(Soruyla ilgili yardım için @Shaggy, @PeterTaylor ve @Arnauld'a teşekkürler.)
Fri Jul 25 02:46:39 CEST 1947
)