全ての 2 よりも大きな偶数は二つの素数の和として表すことができる
2 つの素数の和が 2014 になるのは?
func = function(n = 2014) {
tbl = 1:n
tbl[1] = 0
for (i in 2:floor(sqrt(n))) {
if (tbl[i]) tbl[2:(n%/%i) * i] = 0
}
prime = tbl[tbl > 0]
a = apply(which(outer(prime, prime, "+") == n, arr.ind=TRUE), 1, function(n) prime[n])
t(a[,a[1,] > a[2,]])
}
func(2014)
35 通りもあるぞ
[,1] [,2]
[1,] 2011 3
[2,] 2003 11
[3,] 1997 17
[4,] 1973 41
[5,] 1931 83
[6,] 1913 101
[7,] 1907 107
[8,] 1901 113
[9,] 1877 137
[10,] 1847 167
[11,] 1823 191
[12,] 1787 227
[13,] 1733 281
[14,] 1721 293
[15,] 1697 317
[16,] 1667 347
[17,] 1613 401
[18,] 1583 431
[19,] 1571 443
[20,] 1553 461
[21,] 1523 491
[22,] 1511 503
[23,] 1493 521
[24,] 1451 563
[25,] 1427 587
[26,] 1373 641
[27,] 1367 647
[28,] 1361 653
[29,] 1217 797
[30,] 1193 821
[31,] 1187 827
[32,] 1151 863
[33,] 1103 911
[34,] 1061 953
[35,] 1031 983