不要告诉任何人,但我已经刻痕了我叔叔的时间旅行机器!不过,我的叔叔痴迷于质数,并且在机器上显示出来—他已对其编程,以便只能将其加起来等于质数的日期。
所以不能去,1947-08-15
因为1947 + 8 + 15 = 1970,这不是素数。它可以去1947-07-25
,因为1947年+ 7 + 25 = 1979年,这是素数。因此,如果我想回去看印度的独立庆祝活动,看来我得提前几周去等待那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
)