最近,我读了小说《素数的孤独》,其中主要字符与双素数(“ 总是在一起,但从未碰过 ”)进行了比较。
甲孪生素是一个素数要么是2或更少2多于另一个素数-例如,孪生素对(41,43)。换句话说,孪生素数是素数差距为2的素数。有时,双素数一词用于一对双素数。此名称的替代名称是素对双胞胎或素对。维基百科
尽管我不太喜欢那部令人沮丧的小说,而且由于我最近陷入了PPCG的境地,所以这在我脑海中引发了一个疑问……
任务:
给定一个正整数N> 4,找出最接近的一对双素数之间的孤独素数(AKA 孤立素数)。
请注意,在这种情况下,术语“ 素数素数”是指所有不是双素数且在成对素数之间的所有素数。这就是N> 4的原因,因为前两个素数对是(3,5)和(5,7)。
例:
- N = 90。
- 查找前两个素数<N和> N的前两对。它们分别是(71,73)和(101,103)。
- 在> 73和<101的范围内找到孤独的素数。
- 他们是:79、83、89、97。
特别案例:
- 如果N在两个孪生素数之间,请找到> N + 1和<N-1的最接近的孪生素数对。示例:N = 72,找到> 73和<71的双素数最接近的对,然后将它们排除在列表71和73中,因为它们不是孤独的素数。因此,对于N = 72的预期的结果是:67,
71,73,79,83,89,97 - 如果N属于一对孪生素数,例如N = 73,则最接近的一对孪生素数是(71,73)和(101,103)。如果N = 71,则双素数最接近的对是(59,61)和(71,73)。
测试用例:
N = 70 > Lonely primes are: 67
N = 71 > Lonely primes are: 67
N = 72 > Lonely primes are: 67, 79, 83, 89, 97 (not the twins 71 and 73)
N = 73 > Lonely primes are: 79, 83, 89, 97
N = 90 > Lonely primes are: 79, 83, 89, 97
N = 201 > Lonely primes are: 211, 223
N = 499 > Lonely primes are: 467, 479, 487, 491, 499, 503, 509
规则:
- 编写一个完整的程序或函数,该程序或函数将从标准输入中获取数字N。
- 以易读的格式(例如csv,列表,数组等)输出孤独素数的列表。
- 最短的代码胜出。
- 请(如果可能)包括可测试的在线小提琴。