可右截断的素数是素数,其中每个前缀都是素数(以10为底)。可向左截短的素数正好相反,其中每个后缀都是素数(不允许以0开头的素数)。这两个序列都是有限的(只有83个右切线,而有4260个左切线)。
您需要编写一个接受单个数字作为输入并生成第n个可右截断的质数的程序。但是,当程序以向后排列的方式读取时,它将产生第n个可左截断的素数。
为了向后排列程序,我们将程序拆分为单词,然后反转单词的顺序。一个单词可以包含任意数量的字符。
例如,如果以下是您的程序:
hello world
1234567890
尽可能允许以下所有安排:
分割每个字符:
0987654321
dlrow olleh
在空白处分割:
1234567890
world hello
任意分割(为清楚起见添加了管道):
hel|lo w|orld
1|23456|7|8|90
908723456orld
1lo whel
向后排列程序时,必须像对待其他字符一样考虑并反转所有空格。
正向测试输入:
1: 2
2: 3
21: 379
60: 239933
83: 73939133
后向测试输入:
1: 2
2: 3
39: 647
187: 29173
4260: 357686312646216567629137
程序应能够在合理的时间内(少于一分钟)运行
这是一个代码高尔夫球,因此字节最少的程序将获胜!
lo w
是orld\n1
。换行符不会结束原子