哥德巴赫猜想指出,每个大于2的偶数都可以表示为两个素数之和。例如,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
但是,一旦达到10,就会发生一些有趣的事情。不仅可以写成10
5 + 5
但也可以写成
7 + 3
因为10可以表示为两个方法的两个素数之和,所以我们说10的“哥德巴赫分区”是2
。或更笼统地说,
数字的戈德巴赫分区是不同的书写方式的总数,
n = p + q
其中p
和q
是素数,p >= q
您面临的挑战是编写一个找到数字的Goldbach分区的程序或函数。现在,从技术上讲,术语“戈德巴赫分区”仅用于表示偶数。然而,由于奇数整数P + 2可以也可以表示为两个素数的总和如果P> 2为素数,我们将这个扩展到所有正整数(A061358)。
您可以放心地假设您的输入将始终为正整数,并且可以使用我们默认的任何允许方法进行输入和输出,例如函数参数和返回值,STDIN和STDOUT,读取和写入文件等。
最多100个正整数的Goldbach分区为:
0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 2, 1, 2, 0, 2, 1, 2, 1, 3, 0, 3, 1,
3, 0, 2, 0, 3, 1, 2, 1, 4, 0, 4, 0, 2, 1, 3, 0, 4, 1, 3, 1, 4, 0, 5, 1, 4,
0, 3, 0, 5, 1, 3, 0, 4, 0, 6, 1, 3, 1, 5, 0, 6, 0, 2, 1, 5, 0, 6, 1, 5, 1,
5, 0, 7, 0, 4, 1, 5, 0, 8, 1, 5, 0, 4, 0, 9, 1, 4, 0, 5, 0, 7, 0, 3, 1, 6
像往常一样,存在标准漏洞,而最短答案以字节为单位!