editing
approved
editing
approved
editing
proposed
proposed
editing
editing
proposed
Sum of A030101
allocated for Olivier Pirson
Sum of A030101
0, 1, 2, 5, 6, 11, 14, 21, 22, 31, 36, 49, 52, 63, 70, 85, 86, 103, 112, 137, 142, 163, 176, 205, 208, 227, 238, 265, 272, 295
0,3
Project Euler, <a href="http://projecteuler.net/problem=463">Problem 463</a>
a(4n) = 6 a(2n) - 5 a(n) - 3 a(n-1) - 1
a(4n + 1) = 2 a(2n+1) + 4 a(2n) - 6 a(n) - 2 a(n-1) - 1
a(4n + 2) = 3 a(2n+1) + 3 a(2n) - 6 a(n) - 2 a(n-1) - 1
a(4n + 3) = 6 a(2n+1) - 8 a(n) - 1
(Python) A = {0: 0, 1: 1, 2: 2, 3: 5}
.
def a(n):
....a_n = A.get(n)
....if a_n is not None:
........return a_n
.
....q, r = divmod(n, 4)
....if r == 0:
........a_n = a(q*2)*6 - a(q)*5 - a(q - 1)*3 - 1
....elif r == 1:
........a_n = a(q*2 + 1)*2 + a(q*2)*4 - a(q)*6 - a(q - 1)*2 - 1
....elif r == 2:
........a_n = a(q*2 + 1)*3 + a(q*2)*3 - a(q)*6 - a(q - 1)*2 - 1
....else:
........a_n = a(q*2 + 1)*6 - a(q)*8 - 1
.
....A[n] = a_n # memoization
.
....return a_n
Sum of A030101
allocated
nonn
Olivier Pirson, Mar 18 2014
approved
editing
allocated for Olivier Pirson
allocated
approved