2018年12月24日月曜日

181224

Ruby


オイラー関数のベキ(4)

150927(2)分で
500次までに現れる0の個数を出力したが、
係数が0となる次数(<= 500)を出力してみた。

def s(n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0}
  s
end

def A(m, n)
  ary = [1]
  a = [0] + (1..n).map{|i| s(i)}
  (1..n).each{|i| ary << (1..i).inject(0){|s, j| s - m * a[j] * ary[-j]} / i}
  ary
end

def B(k, n)
  a = A(k, n)
  (0..n).select{|i| a[i] == 0}
end

n = 500
[1, 2, 3, 4, 5, 6, 8, 10, 14, 15, 26].each{|i|
  j = B(i, n)
  p [i, j.size, j]
}

出力結果
[1, 464, [3, 4, 6, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 496, 497, 498, 499, 500]]
[2, 243, [7, 11, 12, 17, 18, 21, 22, 25, 32, 37, 39, 41, 42, 43, 46, 47, 49, 54, 57, 58, 60, 62, 65, 67, 68, 72, 74, 75, 76, 81, 82, 87, 88, 90, 92, 95, 97, 98, 99, 106, 107, 109, 111, 112, 113, 116, 117, 120, 122, 123, 125, 126, 128, 130, 132, 136, 137, 142, 143, 144, 147, 153, 157, 158, 159, 160, 162, 163, 164, 165, 167, 172, 173, 175, 177, 179, 181, 182, 186, 187, 192, 193, 194, 197, 201, 204, 205, 207, 208, 211, 212, 214, 215, 217, 219, 220, 221, 222, 228, 230, 231, 232, 235, 237, 239, 240, 241, 242, 244, 245, 247, 251, 256, 257, 258, 262, 263, 266, 267, 270, 272, 273, 274, 277, 278, 279, 282, 283, 284, 285, 287, 291, 292, 296, 297, 302, 304, 305, 307, 312, 315, 317, 318, 319, 320, 322, 325, 326, 328, 329, 330, 331, 332, 333, 334, 337, 340, 342, 343, 345, 347, 349, 351, 353, 354, 357, 359, 360, 361, 362, 364, 366, 367, 368, 369, 372, 375, 381, 382, 384, 386, 387, 389, 390, 392, 393, 395, 397, 398, 403, 406, 407, 408, 410, 412, 415, 417, 418, 419, 421, 422, 424, 427, 428, 429, 431, 432, 435, 437, 438, 439, 441, 442, 446, 447, 448, 449, 450, 452, 455, 457, 458, 459, 461, 462, 466, 467, 468, 472, 473, 476, 480, 481, 482, 483, 486, 487, 491, 492, 497, 498, 499, 500]]
[3, 469, [2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 497, 498, 499, 500]]
[4, 158, [9, 14, 19, 24, 31, 34, 39, 42, 44, 49, 53, 59, 64, 65, 69, 74, 75, 82, 84, 86, 89, 94, 97, 99, 108, 109, 111, 114, 116, 119, 124, 130, 133, 134, 139, 144, 149, 150, 152, 157, 159, 163, 164, 167, 169, 174, 180, 184, 185, 189, 194, 196, 198, 199, 201, 203, 207, 209, 214, 218, 219, 224, 226, 227, 229, 234, 235, 239, 240, 244, 249, 251, 252, 256, 259, 264, 269, 272, 273, 274, 284, 285, 286, 289, 294, 295, 299, 303, 306, 309, 314, 317, 318, 319, 320, 321, 324, 328, 334, 339, 341, 343, 344, 349, 350, 354, 359, 361, 362, 364, 369, 371, 372, 374, 384, 387, 388, 389, 394, 399, 401, 403, 405, 409, 410, 414, 415, 416, 419, 422, 424, 427, 430, 433, 434, 438, 439, 444, 449, 456, 459, 460, 462, 464, 469, 471, 473, 474, 479, 482, 484, 485, 488, 489, 490, 493, 494, 499]]
[5, 0, []]
[6, 212, [5, 8, 14, 17, 19, 23, 26, 32, 33, 35, 40, 41, 44, 47, 50, 52, 53, 54, 59, 62, 63, 68, 71, 74, 75, 77, 80, 82, 85, 86, 89, 95, 96, 98, 103, 104, 107, 109, 113, 116, 117, 118, 122, 124, 125, 128, 129, 131, 134, 138, 140, 143, 145, 147, 149, 152, 155, 158, 161, 162, 166, 167, 170, 173, 176, 178, 179, 180, 184, 185, 187, 188, 194, 195, 197, 201, 203, 204, 206, 209, 212, 215, 217, 221, 222, 223, 224, 228, 229, 230, 233, 236, 239, 242, 243, 247, 248, 250, 251, 257, 260, 261, 264, 266, 269, 270, 271, 275, 278, 280, 283, 284, 285, 287, 290, 292, 293, 294, 296, 299, 302, 305, 311, 313, 314, 316, 317, 318, 320, 323, 327, 329, 332, 333, 334, 337, 338, 339, 341, 347, 348, 349, 350, 356, 359, 360, 362, 364, 365, 368, 369, 371, 374, 375, 376, 377, 382, 383, 385, 386, 390, 392, 394, 395, 397, 398, 401, 404, 408, 410, 411, 413, 415, 418, 419, 422, 425, 426, 428, 431, 432, 437, 439, 440, 446, 448, 449, 452, 454, 455, 457, 458, 459, 460, 464, 467, 470, 473, 474, 476, 477, 479, 481, 482, 485, 488, 489, 491, 492, 494, 495, 500]]
[8, 250, [3, 7, 11, 13, 15, 18, 19, 23, 27, 28, 29, 31, 35, 38, 39, 43, 45, 47, 48, 51, 53, 55, 59, 61, 62, 63, 67, 68, 71, 73, 75, 77, 78, 79, 83, 84, 87, 88, 91, 93, 95, 98, 99, 103, 106, 107, 109, 111, 113, 115, 117, 118, 119, 123, 125, 127, 128, 130, 131, 135, 138, 139, 141, 143, 147, 148, 150, 151, 153, 155, 157, 159, 163, 164, 167, 168, 171, 172, 173, 175, 178, 179, 181, 183, 187, 188, 189, 191, 193, 194, 195, 198, 199, 203, 205, 207, 211, 213, 215, 216, 218, 219, 221, 222, 223, 227, 228, 231, 232, 235, 237, 238, 239, 243, 245, 247, 248, 249, 251, 253, 255, 259, 260, 263, 266, 267, 268, 269, 271, 273, 275, 278, 279, 283, 285, 287, 288, 291, 293, 295, 298, 299, 300, 301, 303, 304, 307, 309, 311, 313, 314, 315, 317, 318, 319, 323, 326, 327, 328, 331, 333, 334, 335, 337, 338, 339, 343, 347, 348, 349, 351, 353, 355, 359, 360, 363, 365, 367, 368, 370, 371, 373, 375, 378, 379, 381, 383, 387, 388, 391, 392, 393, 395, 396, 397, 398, 399, 402, 403, 406, 407, 411, 413, 414, 415, 418, 419, 423, 425, 427, 428, 429, 431, 435, 436, 437, 438, 439, 443, 445, 447, 448, 451, 452, 453, 454, 455, 458, 459, 461, 463, 467, 468, 469, 470, 471, 473, 475, 477, 478, 479, 480, 483, 487, 488, 491, 493, 495, 498, 499]]
[10, 151, [6, 13, 17, 27, 28, 34, 36, 39, 41, 48, 55, 59, 61, 62, 72, 74, 76, 82, 83, 90, 93, 94, 97, 104, 105, 111, 112, 116, 121, 125, 127, 128, 131, 132, 138, 139, 146, 149, 151, 152, 153, 160, 168, 169, 174, 181, 182, 183, 188, 193, 195, 197, 202, 204, 207, 209, 211, 214, 215, 223, 226, 230, 237, 243, 244, 245, 248, 251, 254, 258, 259, 262, 264, 266, 270, 272, 276, 279, 281, 283, 286, 289, 293, 297, 300, 302, 303, 307, 309, 312, 314, 321, 325, 328, 329, 335, 336, 338, 340, 342, 347, 349, 356, 358, 359, 369, 370, 377, 378, 380, 381, 383, 384, 388, 391, 396, 397, 398, 402, 403, 404, 405, 416, 419, 424, 426, 427, 431, 433, 435, 440, 446, 447, 450, 454, 457, 462, 463, 467, 468, 469, 473, 475, 479, 482, 489, 490, 492, 493, 496, 497]]
[14, 172, [4, 9, 15, 19, 24, 26, 29, 32, 34, 37, 44, 48, 49, 54, 55, 59, 66, 69, 74, 78, 79, 81, 83, 84, 92, 94, 99, 100, 101, 103, 104, 109, 113, 114, 117, 119, 124, 125, 129, 134, 136, 142, 144, 147, 149, 151, 154, 158, 159, 160, 169, 170, 171, 174, 179, 180, 184, 185, 193, 194, 199, 200, 201, 202, 204, 207, 209, 213, 216, 219, 224, 229, 234, 235, 236, 239, 242, 244, 246, 249, 253, 254, 257, 258, 259, 260, 262, 268, 269, 270, 274, 279, 283, 284, 285, 287, 290, 294, 299, 301, 304, 309, 313, 316, 319, 321, 323, 324, 329, 331, 334, 338, 344, 345, 348, 349, 354, 355, 356, 359, 365, 366, 367, 369, 372, 374, 377, 378, 379, 384, 389, 394, 395, 399, 400, 403, 404, 406, 409, 411, 419, 422, 423, 424, 429, 432, 434, 437, 440, 442, 444, 446, 447, 449, 454, 455, 459, 461, 466, 469, 472, 474, 477, 479, 484, 488, 489, 491, 492, 494, 496, 499]]
[15, 2, [53, 482]]
[26, 80, [9, 20, 31, 42, 43, 53, 64, 66, 75, 86, 89, 97, 108, 112, 119, 135, 136, 141, 152, 158, 163, 171, 174, 181, 183, 185, 196, 204, 206, 207, 218, 227, 229, 230, 240, 241, 250, 262, 273, 277, 284, 289, 295, 296, 306, 311, 317, 319, 324, 328, 339, 342, 348, 350, 361, 365, 371, 381, 383, 388, 394, 405, 407, 411, 416, 418, 419, 427, 434, 438, 449, 457, 460, 465, 466, 471, 480, 482, 486, 490]]

2018年12月12日水曜日

181212

Ruby


1212

この記事は
日曜数学 Advent Calendar 2018 (https://adventar.org/calendars/3009)
の12/12 分として書いております。
前回はだまさんの初等的解法の存在する角度の問題でした。

「1が2個, 2が2個」を一列に並べるとき、
同じ数字が並ばない並べ方は何通りあるでしょう。
解:1212、2121の2通り。

「1が9個, 2が9個, ... , 9が9個」を一列に並べるとき、
同じ数字が並ばない並べ方は何通りあるでしょう。
また、
「1がn個, 2がn個, ... , nがn個」を一列に並べるとき、
同じ数字が並ばない並べ方の個数を高速に求めるには
どうすればよいでしょうか?

数学の知識と初歩的なプログラミングの知識が必要になります。

①数学の知識
パスカルの三角形とは次のようなものです。
1,
1, 1,
1, 2, 1,
1, 3, 3, 1,
1, 4, 6, 4, 1,
...
さて次のように細工します。
 1/1,
-1/1,  1/2,
 1/1, -2/2,  1/6,
-1/1,  3/2, -3/6,  1/24,
 1/1, -4/2,  6/6, -4/24, 1/120,
...
これらを係数にもつ多項式q_i(x) を作ります。
q_1(x) =  x,
q_2(x) = -x + 1/2 * x^2,
q_3(x) =  x - 2/2 * x^2 + 1/6 * x^3,
q_4(x) = -x + 3/2 * x^2 - 3/6 * x^3 + 1/24 * x^4,
q_5(x) =  x - 4/2 * x^2 + 6/6 * x^3 - 4/24 * x^4 + 1/120 * x^5,
...
さて、q_i(x) は次のような驚くべき性質を持っています。

「1がm_1個, 2がm_2個, ... , kがm_k個」を一列に並べるとき、同じ数字が並ばない並べ方は
Integral_{0..infinity} Product_{i=1..k} q_{m_i}(x) * exp(-x) dx.

ちなみに、Integral_{0..infinity} x^m * exp(-x) dx = m! ですので、
多項式の掛け算をして、係数を求めることが重要であることがわかります。

今回の場合に当てはめると
Integral_{0..infinity} (q_n(x))^n * exp(-x) dx
となります。

②プログラミングの知識
 (q_n(x))^n の計算はバイナリ法を用いると計算回数が少なくてすみます。

これらをもとに実装すると次のようになり、
n = 9 のときは、
11655577382287102750765311537460065620507094071664576111302628243840
通りと求まります。

def mul(f_ary, b_ary)
  s1, s2 = f_ary.size, b_ary.size
  ary = Array.new(s1 + s2 - 1, 0)
  (0..s1 - 1).each{|i|
    (0..s2 - 1).each{|j|
      ary[i + j] += f_ary[i] * b_ary[j]
    }
  }
  ary
end

def power(ary, n)
  return [1] if n == 0
  k = power(ary, n >> 1)
  k = mul(k, k)
  return k if n & 1 == 0
  return mul(k, ary)
end

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

def f(n)
  return 1 if n < 2
  (1..n).inject(:*)
end

def A(n)
  ary = power([0] + (1..n).map{|i| (-1) ** (n - i) * ncr(n - 1, n - i) / f(i).to_r}, n)
  (0..ary.size - 1).inject(0){|s, i| s + f(i) * ary[i]}.to_i
end

n = 20
(0..n).each{|i| p [i, A(i)]}

出力結果
[0, 1]
[1, 1]
[2, 2]
[3, 174]
[4, 2265024]
[5, 7946203275000]
[6, 12229789732207993835280]
[7, 12202002913678756821228939869239920]
[8, 10937192762438008527903830198163831816546577931520]
[9, 11655577382287102750765311537460065620507094071664576111302628243840]
[10, 18877545858631350177544126730326118579042534510881427013497201905522243828084277155584000]
[11, 57814365142525615345822290635367980031764472894406481579410336826627768364093502411683595510203294058889662636800]
[12, 407658789636795392873224914660821849906640854496041813132347715886561006703544292229875155619913436614371595102735557393480894068396031590400]
[13, 7916240618568924952784422376897285074349407297177155333772267175236361650837449810625502710956077916339020347009688544252921894901829502808023567304468717311128650695552000]
[14, 498961977012237615935915814835809945218689415847045000987626530145354117671508674820161361629165453542631518534948206591419638038499418413317775100822845509486513888639232738104669714232846642736185909196800]
[15, 118813418570954352257626152461870566748175083811925094869482044671635443619567119146472438369570944844793864117533983401043281073111768900013398219072288449242647438928900346234820007048719066622523886248828693230918893944171625097165388804864000]
[16, 123074415490344199979921662196075276052024358457569576638878274700296813263968616812171263108052043597819537373317572776761453007104704321107605953901687032805754242905638392434082191822082575494722399225216595810131347324670136983012576738242197768842539749995881462695930820212498432000]
[17, 632673322223167150563381180449202895810656486275138980768979126849568078803929001026198717240246438492208986017127366607503113807961453674908153743390688559089518342608243133491125088605989422356306262511591012413333743083156845181593352662535492648478551130685710723664924508871843351853059474256064874854425780258865548135985152000]
[18, 18262485268060395471719629462211789200248188118212907564935177446312080481434798754251346826458783843905735671916454235952642336679346522571446273991105431911451246995478453093531740103567375709740164836196952627498127365568349243885731021363958900889615826228391994012608680368231380597695100532416438065107000126490501124888837506361583551279679270162874801672720230508095201280000]
[19, 3325346401901827184405264043746239777213987165498607952527099919169429535191502889521807119252816036721707694000409416885917354468125596599265774644403590455801186699549289399295618384982739223055026353093870119637734650695671402196886800379294232694826306609192327108837847109423774316242807710788886545902961566935329488725575424433775416001359407137834222431223588069183910836336963435557633128490071733441789088652042060740714496000]
[20, 4263374507224750254652747946709751036907009890731720806160330060792101908200442231854976249703550510732440932255817411768387265800055035356279767743465046586935783799213627064605070089606422958689740675558147647400901384320375900390925397265681026115099056542471222575925955266135626206309095922246090256122147265738804913109253904934843458466990632702917971742764047620310632779114398031596958284411852848038321222991793804098769489620905040225884507551867559309764993380559572463906816000000]

2018年12月2日日曜日

181202

Ruby


A060963 とA322178

出力してみた。

def search(a, num, d, k, n)
  if num == 0
    @cnt += 1
  else
    (2 * n - 1).times{|i|
      if a[i] == 0
        (i + d + 1..2 * n - 1).each{|j|
          if a[j] == 0
            a[i], a[j] = num, num
            search(a, num - 1, j - i - k, k, n)
            a[i], a[j] = 0, 0
          end
        }
      end
    }
  end
end

def A(k, n)
  a = [0] * 2 * n
  @cnt = 0
  search(a, n, 0, k, n)
  @cnt
end

puts "A060963"
p (0..9).map{|i| A(0, i)}
puts "A322178"
p (0..7).map{|i| A(1, i)}

出力結果
A060963
[1, 1, 1, 5, 29, 145, 957, 8397, 85169, 944221]
A322178
[1, 1, 5, 33, 329, 3825, 57293, 977581]

2018年11月23日金曜日

181123

Ruby


A321686

n=4 の場合
4             | 1111 |
3+1         | 1112 |
2+2         | 1122 | 1212, 2121.
2+1+1     | 1123 | 1213, 1231, 2131, 1312, 1321, 3121.
1+1+1+1 | 1234 | 1234, 1243, ... (24 terms)
より、T(4,1) = 0, T(4,2) = 0+2 = 2, T(4,3) = 6, T(4,4) = 24
となっているが、
要素の数が同じもの同士は区別しないとすると、
4             | 1111 |
3+1         | 1112 |
2+2         | 1122 | 1212.
2+1+1     | 1123 | 1213, 1231, 2131.
1+1+1+1 | 1234 | 1234.
T(4,1) = 0, T(4,2) = 0+1 = 1, T(4,3) = 3, T(4,4) = 1
となる。
このように要素の数が同じもの同士は区別しないとした場合について
出力してみた。

def partition(n, min, max)
  return [[]] if n == 0
  [max, n].min.downto(min).flat_map{|i| partition(n - i, min, i).map{|rest| [i, *rest]}}
end

def mul(f_ary, b_ary)
  s1, s2 = f_ary.size, b_ary.size
  ary = Array.new(s1 + s2 - 1, 0)
  (0..s1 - 1).each{|i|
    (0..s2 - 1).each{|j|
      ary[i + j] += f_ary[i] * b_ary[j]
    }
  }
  ary
end

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

def f(n)
  return 1 if n < 2
  (1..n).inject(:*)
end

def A(a)
  ary = [1]
  a.each{|i|
    ary = mul(ary, [0] + (1..i).map{|j| (-1) ** (i - j) * ncr(i - 1, i - j) / f(j).to_r})
  }
  (0..ary.size - 1).inject(0){|s, i| s + f(i) * ary[i]}.to_i
end

def B(n)
  a = Array.new(n + 1, 0)
  partition(n, 1, n).each{|ary|
    a[ary.size] += A(ary) / ary.group_by(&:to_i).inject(1){|s, i| s * f(i.last.size)}
  }
  a[1..-1]
end

n = 40
(1..n).each{|i| p B(i)}
# Row sums
p (1..n).map{|i| B(i).inject(:+)}

出力結果
[1]
[0, 1]
[0, 1, 1]
[0, 1, 3, 1]
[0, 1, 7, 6, 1]
[0, 1, 15, 25, 10, 1]
[0, 1, 31, 90, 65, 15, 1]
[0, 1, 63, 301, 350, 140, 21, 1]
[0, 1, 127, 966, 1701, 1050, 266, 28, 1]
[0, 1, 255, 3025, 7770, 6951, 2646, 462, 36, 1]
[0, 1, 511, 9330, 34105, 42525, 22827, 5880, 750, 45, 1]
[0, 1, 1023, 28501, 145750, 246730, 179487, 63987, 11880, 1155, 55, 1]
[0, 1, 2047, 86526, 611501, 1379400, 1323652, 627396, 159027, 22275, 1705, 66, 1]
[0, 1, 4095, 261625, 2532530, 7508501, 9321312, 5715424, 1899612, 359502, 39325, 2431, 78, 1]
[0, 1, 8191, 788970, 10391745, 40075035, 63436373, 49329280, 20912320, 5135130, 752752, 66066, 3367, 91, 1]
[0, 1, 16383, 2375101, 42355950, 210766920, 420693273, 408741333, 216627840, 67128490, 12662650, 1479478, 106470, 4550, 105, 1]
[0, 1, 32767, 7141686, 171798901, 1096190550, 2734926558, 3281882604, 2141764053, 820784250, 193754990, 28936908, 2757118, 165620, 6020, 120, 1]
[0, 1, 65535, 21457825, 694337290, 5652751651, 17505749898, 25708104786, 20415995028, 9528822303, 2758334150, 512060978, 62022324, 4910178, 249900, 7820, 136, 1]
[0, 1, 131071, 64439010, 2798806985, 28958095545, 110687251039, 197462483400, 189036065010, 106175395755, 37112163803, 8391004908, 1256328866, 125854638, 8408778, 367200, 9996, 153, 1]
[0, 1, 262143, 193448101, 11259666950, 147589284710, 693081601779, 1492924634839, 1709751003480, 1144614626805, 477297033785, 129413217791, 23466951300, 2892439160, 243577530, 13916778, 527136, 12597, 171, 1]
[0, 1, 524287, 580606446, 45232115901, 749206090500, 4306078895384, 11143554045652, 15170932662679, 12011282644725, 5917584964655, 1900842429486, 411016633391, 61068660380, 6302524580, 452329200, 22350954, 741285, 15675, 190, 1]
[0, 1, 1048575, 1742343625, 181509070050, 3791262568401, 26585679462804, 82310957214948, 132511015347084, 123272476465204, 71187132291275, 26826851689001, 6833042030178, 1204909218331, 149304004500, 13087462580, 809944464, 34952799, 1023435, 19285, 210, 1]
[0, 1, 2097151, 5228079450, 727778623825, 19137821912055, 163305339345225, 602762379967440, 1142399079991620, 1241963303533920, 835143799377954, 366282500870286, 108823356051137, 22496861868481, 3295165281331, 345615943200, 26046574004, 1404142047, 53374629, 1389850, 23485, 231, 1]
[0, 1, 4194303, 15686335501, 2916342574750, 96416888184100, 998969857983405, 4382641999117305, 9741955019900400, 12320068811796900, 9593401297313460, 4864251308951100, 1672162773483930, 401282560341390, 68629175807115, 8479404429331, 762361127264, 49916988803, 2364885369, 79781779, 1859550, 28336, 253, 1]
[0, 1, 8388607, 47063200806, 11681056634501, 485000783495250, 6090236036084530, 31677463851804540, 82318282158320505, 120622574326072500, 108254081784931500, 63100165695775560, 24930204590758260, 6888836057922000, 1362091021641000, 195820242247080, 20677182465555, 1610949936915, 92484925445, 3880739170, 116972779, 2454606, 33902, 276, 1]
[0, 1, 16777215, 141197991025, 46771289738810, 2436684974110751, 37026417000002430, 227832482998716310, 690223721118368580, 1167921451092973005, 1203163392175387500, 802355904438462660, 362262620784874680, 114485073343744260, 25958110360896000, 4299394655347200, 526655161695960, 48063331393110, 3275678594925, 166218969675, 6220194750, 168519505, 3200450, 40250, 300, 1]
[0, 1, 33554431, 423610750290, 187226356946265, 12230196160292565, 224595186974125331, 1631853797991016600, 5749622251945664950, 11201516780955125625, 13199555372846848005, 10029078340998476760, 5149507353856958820, 1850568574253550060, 477898618396288260, 90449030191104000, 12725877242482560, 1343731795378830, 107025546101760, 6433839018750, 290622864675, 9759104355, 238929405, 4126200, 47450, 325, 1]
[0, 1, 67108863, 1270865805301, 749329038535350, 61338207158409090, 1359801318005044551, 11647571772911241531, 47628831813556336200, 106563273280541795575, 143197070509423605675, 123519417123830092365, 71823166587281982600, 29206898819153109600, 8541149231801585700, 1834634071262848260, 294063066070824960, 35569317763922670, 3270191625210510, 229268487458010, 12246296312250, 495564056130, 15015551265, 333832005, 5265000, 55575, 351, 1]
[0, 1, 134217727, 3812664524766, 2998587019946701, 307440364830580800, 8220146115188676396, 82892803728383735268, 392678226281361931131, 1006698291338432496375, 1538533978374777852325, 1501910658871554621690, 985397416171213883565, 451512851236272407400, 148782988064375309400, 36060660300744309600, 6539643128396047620, 898741468057510350, 94432767017711850, 7626292886912700, 474194413703010, 22653141490980, 825906183960, 22693687380, 460192005, 6654375, 64701, 378, 1]
[0, 1, 268435455, 11438127792025, 11998160744311570, 1540200411172850701, 49628317055962639176, 588469772213874823272, 3224318613979279184316, 9452962848327254398506, 16392038075086211019625, 18059551225961878690915, 13326679652926121224470, 6855064482242755179765, 2534474684137526739000, 689692892575539953400, 140694950355081071520, 21818248085373723570, 2598531274376323650, 239332331869053150, 17110181160972900, 949910385013590, 40823077538100, 1347860993700, 33738295500, 626551380, 8336601, 74907, 406, 1]
[0, 1, 536870911, 34314651811530, 48004081105038305, 7713000216608565075, 299310102746948685757, 4168916722553086402080, 26383018684048108297800, 88300984248924568770870, 173373343599189364594756, 215047101560666876619690, 177979707061075333384555, 102442517922081938561415, 42337710060168129525765, 12879868072770626040000, 2940812098256837097720, 511605167806434372210, 68591811024147549270, 7145845579888333500, 581535955088511150, 37058299246258290, 1848018090851790, 71823880393200, 2157580085700, 49402080000, 843303006, 10359090, 86275, 435, 1]
[0, 1, 1073741823, 102944492305501, 192050639071964750, 38613005164147863680, 1803573616698300679617, 29481727160618553500317, 215233066194937952784480, 821091876924369227235630, 1822034420240818214718430, 2538891460766525007411346, 2350803586293570877234350, 1509732440048140534682950, 695170458764435751922125, 235535731151727520125765, 59932861644880019603520, 11638099950966221425290, 1746257766241090259070, 204362877042025885770, 18776564681658556500, 1359760239259935240, 77714697244997670, 3499967339895390, 123605802450000, 3392632085700, 71327958156, 1122998436, 12774790, 98890, 465, 1]
[0, 1, 2147483647, 308834550658326, 768305500780164501, 193257076459811283150, 10860054705353951941382, 208175663741028175181836, 1751346256720122175776157, 7605059958514260997905150, 19041436079332551374419930, 29749840488672593296243236, 30748534496289375534223546, 21977325306919397828112700, 11242118862750241061592700, 4228206426040348553808600, 1194461517469807833782085, 257780560811305783833450, 43070739743305846088550, 5629152430039582088700, 579894170675197015770, 47331529706117196540, 3069483578649883980, 158213946062591640, 6466506598695390, 208421604592500, 5247158997756, 101648915928, 1480692556, 15642600, 112840, 496, 1]
[0, 1, 4294967295, 926505799458625, 3073530837671316330, 967053687799836580251, 65353585308583522931442, 1468089700892551178214234, 14218945717502005581391092, 70196885883348471156922507, 198019420751839774742104450, 346289681454731077633095526, 398732254444145099706925788, 316453763486241547299688646, 179366989385422772690410500, 74665215253355469368721700, 23339590705557273894321960, 5576731051262006158950735, 1033053876190811013427350, 150024635914057905773850, 17227035843543522404100, 1573856294503658143110, 114860168436414644100, 6708404338089491700, 313410104431281000, 11677046713507890, 344847738534156, 7991679727812, 143108307496, 1934327956, 19027800, 128216, 528, 1]
[0, 1, 8589934591, 2779521693343170, 12295049856484723945, 4838341969836854217585, 393088565539300974168903, 10341981491556441770431080, 115219655440908595829342970, 645990918667638245993693655, 2050391093401746218577967007, 4007205916753881628706155236, 5131076734784472274116204982, 4512631179765285214602878186, 2827591614882160364965435646, 1299345218185754813221236000, 448098666542271851677873060, 118144018577011378596484455, 24171700822696604400643035, 3883521958557911223130500, 494565352784928353855850, 50278018028120343409410, 4100780000104780313310, 269153468212472953200, 14230246844440235700, 605336272268978250, 20643087915395946, 560623091185080, 11998712337700, 199203818220, 2505161956, 23002496, 145112, 561, 1]
[0, 1, 17179869183, 8338573669964101, 49182978947632238950, 24204004899040755811870, 2363369735205642699231003, 72786959006434393367186463, 932099225018825208405174840, 5929137923449652809772585865, 21149901852685100431773363725, 46129656177694444134345674603, 65580126734167548918100615020, 63795282071733180063953621400, 44098913788115530324118977230, 22317769887668482563283975646, 8468923882862104440067204960, 2456546982351465287818108795, 553234633385550257808059085, 97958618035296917640122535, 13774829014256478300247500, 1550403731375455565453460, 140495178030425510302230, 10291309768991658236910, 610679392479038610000, 29363653651164691950, 1142056558069272846, 35779911377393106, 896587036640680, 17775623066080, 274358676900, 3218239332, 27646080, 163625, 595, 1]
[0, 1, 34359738367, 25015738189761486, 196740254364198919901, 121069207474151411298300, 14204422416132896951197888, 511872082780246396269536244, 7529580759157036060608585183, 54294340536065700496358447625, 217428156450300657127506223115, 528576119807323985909575784358, 833091176987705031151553054843, 894918793666698889749497693220, 681180075105350604601619302620, 378865462103142768773378611920, 157820552013462153604359255006, 50230222582837014332975054475, 12414770383291369928363172325, 2414448376056191692970387250, 373455198320426483645072535, 46333307373141045174770160, 4641297648044816792102520, 377195302717233649751160, 24947615188488584876910, 1344770733758155908750, 59057124160965785946, 2108114165258886708, 60884348403332146, 1412080105557000, 26006383373080, 374124096192, 4102913892, 33045705, 183855, 630, 1]
[0, 1, 68719476735, 75047248929022825, 786986033194985441090, 605542777625121255411401, 85347603704271533118485628, 3597309001877857670837951596, 60748518156036534881138217708, 496178645583748340527834613808, 2228575905039072271771420678775, 6031765474330864502132839851053, 10525670243659784359728212442474, 12467035494654790597895023066703, 10431439845141607354172167929900, 6364162006652492136202298481420, 2903994294318537226443126692016, 1011734335921691397264935181081, 273696089482081673043512156325, 58289289528359012094800530075, 9883552342464721365871837950, 1346454653156388432315245895, 148441855630127014601025600, 13316789610541190736379200, 975938067240959686797000, 58566883532442482595660, 2880255961943266343346, 115976206622955727062, 3812875920552186796, 101834671464485146, 2192271606749400, 37604230355032, 505417340736, 5193422157, 39296775, 205905, 666, 1]
[0, 1, 137438953471, 225141815506545210, 3148019180028870787185, 3028500874158801262498095, 512691165003254319966325169, 25266510616849275228984146800, 489585454250170136719943693260, 4526356328409771599631649741980, 22781937695974471058242041401558, 68577996122678581795232659040358, 132339808398248276818871389160741, 172597131674172062132363512309613, 158507193326637293556305374085303, 105893869944928989397206645151200, 52828070715749087759292325553676, 20103478004987290979947024770393, 5938263946599161512048153994931, 1381192590520902902844722227750, 255960336377653439412237289075, 38159100058748878444492001745, 4612175477019182753537809095, 454728016672574401537747200, 36739303224324223219507200, 2440110155552021751688500, 133453538542967407522656, 6011613540763070974020, 222736732398416957350, 6766081393022256030, 167602819666967146, 3358002747755392, 53777585258584, 676800271917, 6529512507, 46503450, 229881, 703, 1]
[0, 1, 274877906943, 675425583958589101, 12592301861930989693950, 15145652389974035183277660, 3079175490893684721060449109, 177378265482948180922855352769, 3941950144618210368988533692880, 41226792409938114533404791371080, 232345733288154482182052063757560, 777139895045438870805801290845496, 1656655696901657903621689328969250, 2376102520162485084539597049185710, 2391697838247094171920638749503855, 1746915242500572134514405051353303, 951143001396914393545883854010016, 394587196800533034418391746650357, 126992229043772198196813796679151, 32180923166496316666097876322181, 6500399318073971691089468009250, 1057301437611379886746569325720, 139626960553170899022323801835, 15070919860488393988905994695, 1336471294056355758805920000, 97742057113124767011719700, 5909902157669174347277556, 295767104143570323821196, 12248242047918745779820, 418953092796062382220, 11794165983031270410, 271700904847384298, 5078885476030080, 76111994231845, 898803697155, 8157133257, 54779166, 255892, 741, 1]
[1, 1, 2, 5, 15, 52, 203, 877, 4140, 21147, 115975, 678570, 4213597, 27644437, 190899322, 1382958545, 10480142147, 82864869804, 682076806159, 5832742205057, 51724158235372, 474869816156751, 4506715738447323, 44152005855084346, 445958869294805289, 4638590332229999353, 49631246523618756274, 545717047936059989389, 6160539404599934652455, 71339801938860275191172, 846749014511809332450147, 10293358946226376485095653, 128064670049908713818925644, 1629595892846007606764728147, 21195039388640360462388656799, 281600203019560266563340426570, 3819714729894818339975525681317, 52868366208550447901945575624941, 746289892095625330523099540639146, 10738823330774692832768857986425209]

2018年11月4日日曜日

181104

Ruby


A129373

A(x) = (1+x) * A(x^2) * A(x^3) * A(x^4) * ... * A(x^n) * ...
を満たすA(x) について考える。
(1+x) * A(x^2),
(1+x) * A(x^2) * A(x^3),
(1+x) * A(x^2) * A(x^3) * A(x^4),
...
がA(x) に近づくさまを出力してみた。

# m次以下を取り出す
def mul(f_ary, b_ary, m)
  s1, s2 = f_ary.size, b_ary.size
  ary = Array.new(s1 + s2 - 1, 0)
  (0..s1 - 1).each{|i|
    (0..s2 - 1).each{|j|
      ary[i + j] += f_ary[i] * b_ary[j]
    }
  }
  ary[0..m]
end

def s(f_ary, g_ary, n)
  s = 0
  (1..n).each{|i| s += i * f_ary[i] * g_ary[i] ** (n / i) if n % i == 0}
  s
end

def A(f_ary, g_ary, n)
  ary = [1]
  a = [0] + (1..n).map{|i| s(f_ary, g_ary, i)}
  (1..n).each{|i| ary << (1..i).inject(0){|s, j| s + a[j] * ary[-j]} / i}
  ary
end

def S(n)
  a = [0, 1]
  (2..n).each{|i|
    s = 0
    (1..i - 1).each{|j|
      s += a[j] if i % j == 0
    }
    a << s
  }
  a
end

def B(n)
  ary1 = S(n).map{|i| -i}
  ary2 = Array.new(n + 1, -1)
  A(ary1, ary2, n)
end

n = 20
ary = B(n)
a = Array.new(n + 1, 0)
a[0] = 1
a[1] = 1
p [1, a]
(2..n).each{|i|
  b = Array.new(n + 1, 0)
  (0..n / i).each{|j| b[i * j] = ary[j]}
  a = mul(a, b, n)
  p [i, a]
}

出力結果
[1, [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
[2, [1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 7, 7, 9, 9, 13, 13, 19, 19, 26]]
[3, [1, 1, 1, 2, 2, 2, 4, 4, 5, 8, 9, 10, 17, 18, 21, 30, 35, 39, 58, 64, 76]]
[4, [1, 1, 1, 2, 3, 3, 5, 6, 8, 11, 14, 16, 26, 30, 36, 48, 64, 72, 99, 118, 148]]
[5, [1, 1, 1, 2, 3, 4, 6, 7, 10, 14, 18, 22, 33, 40, 50, 67, 87, 106, 141, 171, 219]]
[6, [1, 1, 1, 2, 3, 4, 7, 8, 11, 16, 21, 26, 40, 48, 61, 83, 108, 132, 182, 220, 281]]
[7, [1, 1, 1, 2, 3, 4, 7, 9, 12, 17, 23, 29, 44, 55, 70, 95, 125, 155, 211, 264, 336]]
[8, [1, 1, 1, 2, 3, 4, 7, 9, 13, 18, 24, 31, 47, 59, 77, 104, 138, 173, 235, 295, 383]]
[9, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 25, 32, 49, 62, 81, 111, 147, 186, 254, 320, 415]]
[10, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 33, 50, 64, 84, 115, 154, 195, 267, 339, 441]]
[11, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 51, 65, 86, 118, 158, 202, 276, 352, 460]]
[12, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 66, 87, 120, 161, 206, 283, 361, 473]]
[13, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 88, 121, 163, 209, 287, 368, 482]]
[14, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 89, 122, 164, 211, 290, 372, 489]]
[15, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 89, 123, 165, 212, 292, 375, 493]]
[16, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 89, 123, 166, 213, 293, 377, 496]]
[17, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 89, 123, 166, 214, 294, 378, 498]]
[18, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 89, 123, 166, 214, 295, 379, 499]]
[19, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 89, 123, 166, 214, 295, 380, 500]]
[20, [1, 1, 1, 2, 3, 4, 7, 9, 13, 19, 26, 34, 52, 67, 89, 123, 166, 214, 295, 380, 501]]

2018年10月20日土曜日

181020

Ruby


Theta series of D_k lattice

k <= 96 のとき、出力してみた。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

def A(ary, n)
  a_ary = [1]
  a = [0] + (1..n).map{|i| ary.inject(0){|s, j| s + j[1] * s(j[0], i)}}
  (1..n).each{|i| a_ary << (1..i).inject(0){|s, j| s - a[j] * a_ary[-j]} / i}
  a_ary
end

def B(k, n)
  a = A([[2, 5 * k], [1, -2 * k], [4, -2 * k]], 2 * n)
  (0..n).map{|i| a[2 * i]}
end

n = 20
(1..96).each{|i| p [i, B(i, n)]}

出力結果
[1, [1, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0]]
[2, [1, 4, 4, 0, 4, 8, 0, 0, 4, 4, 8, 0, 0, 8, 0, 0, 4, 8, 4, 0, 8]]
[3, [1, 12, 6, 24, 12, 24, 8, 48, 6, 36, 24, 24, 24, 72, 0, 48, 12, 48, 30, 72, 24]]
[4, [1, 24, 24, 96, 24, 144, 96, 192, 24, 312, 144, 288, 96, 336, 192, 576, 24, 432, 312, 480, 144]]
[5, [1, 40, 90, 240, 200, 560, 400, 800, 730, 1240, 752, 1840, 1200, 2000, 1600, 2720, 1480, 3680, 2250, 3280, 2800]]
[6, [1, 60, 252, 544, 1020, 1560, 2080, 3264, 4092, 4380, 6552, 8160, 8224, 10200, 12480, 14144, 16380, 17400, 18396, 24480, 26520]]
[7, [1, 84, 574, 1288, 3444, 4424, 9240, 11088, 18494, 19740, 34440, 31304, 52808, 52248, 74048, 71120, 110964, 94864, 145222, 132888, 181384]]
[8, [1, 112, 1136, 3136, 9328, 14112, 31808, 38528, 74864, 84784, 143136, 149184, 261184, 246176, 390784, 395136, 599152, 550368, 859952, 768320, 1175328]]
[9, [1, 144, 2034, 7392, 22608, 44640, 93984, 141120, 262386, 343536, 557280, 703584, 1068384, 1234080, 1851264, 2057280, 2884176, 3231936, 4428242, 4639392, 6455520]]
[10, [1, 180, 3380, 16320, 52020, 129064, 262080, 489600, 840500, 1330420, 2050344, 2986560, 4194240, 5878440, 7862400, 10216320, 13415220, 17163880, 21250420, 26585280, 32826664]]
[11, [1, 220, 5302, 33528, 116380, 339064, 719400, 1538416, 2624182, 4763220, 7217144, 11676280, 16317048, 25022184, 32503680, 47430768, 59759260, 82927856, 101189550, 137904360, 161928184]]
[12, [1, 264, 7944, 64416, 253704, 825264, 1938336, 4437312, 8118024, 15653352, 24832944, 42517728, 61903776, 98021616, 133522752, 201364416, 259776264, 374842512, 471023592, 653690400, 793078704]]
[13, [1, 312, 11466, 116688, 535704, 1899664, 5043376, 12066912, 24443978, 48210760, 83323344, 145532816, 227110416, 363737712, 531517376, 800145632, 1104376728, 1594656544, 2114015514, 2931991920, 3779027408]]
[14, [1, 364, 16044, 200928, 1089452, 4196920, 12547808, 31553344, 70439852, 142487436, 268594872, 476105504, 800698080, 1296257144, 2022013760, 3056208064, 4507001772, 6481076056, 9123064524, 12637846368, 17190762680]]
[15, [1, 420, 21870, 331240, 2128260, 8972712, 29822520, 80027280, 193511790, 409172940, 825736296, 1509537960, 2698852520, 4472616120, 7347537600, 11335886864, 17520853380, 25553816400, 37658603350, 52706867640, 74655559272]]
[16, [1, 480, 29152, 525952, 3994080, 18626112, 67978880, 197120256, 509145568, 1143441760, 2428524096, 4658843520, 8705492608, 15000919872, 25593401600, 40864033536, 65187410400, 98098623936, 148724365664, 213678303360, 310833534528]]
[17, [1, 544, 38114, 808384, 7213984, 37569728, 149405248, 470966912, 1291650786, 3101265120, 6883061184, 13967503552, 27036220096, 48877735232, 85898222336, 142979339392, 233808578464, 365627715968, 565633846434, 841764350272, 1246798917056]]
[18, [1, 612, 48996, 1207680, 12573540, 73617480, 318102912, 1090632960, 3176573796, 8148505828, 18918517320, 40578145920, 81375600000, 154398101832, 279331331328, 484986858240, 812932819812, 1320330798792, 2085523894756, 3214498469760, 4845373383240]]
[19, [1, 684, 62054, 1759704, 21210156, 140116184, 658369608, 2449182384, 7597766246, 20748447108, 50601708504, 114223115480, 238352317656, 472600643976, 883678139136, 1594639240368, 2749536787500, 4620722631088, 7482364853310, 11894205734280, 18321074279384]]
[20, [1, 760, 77560, 2508000, 34729720, 259114704, 1327461600, 5341699520, 17701924600, 51294999960, 131880275664, 312126610080, 680432137440, 1404010658960, 2724593155520, 5089580732736, 9062110326520, 15699349246320, 26159307313560, 42719885410400, 67517852274384]]
[21, [1, 840, 95802, 3504816, 55350120, 465944304, 2610853840, 11337146784, 40208417466, 123411903160, 335056780464, 830096613360, 1893781702512, 4058779021584, 8190877926720, 15805879161632, 29122237029480, 51905458442208, 89163973663338, 149313692762640, 242598110651568]]
[22, [1, 924, 117084, 4812192, 86075484, 815677016, 5012882336, 23460347328, 89096422492, 289559673084, 830202403800, 2153312518240, 5140361517984, 11444537517336, 24015334687168, 47873378766400, 91281903219804, 167369436673208, 296418599695548, 509007239863584, 850134257934808]]
[23, [1, 1012, 141726, 6503112, 130905236, 1392036360, 9401213016, 47412641232, 192747766686, 663612939132, 2007831887432, 5456890474248, 13617909938952, 31527898462552, 68719323996224, 141662701280848, 279248601010324, 527242669347856, 961796734667878, 1695182770403416, 2907618520941640]]
[24, [1, 1104, 170064, 8662720, 195082320, 2319457632, 17231109824, 93703589760, 407488018512, 1487286966928, 4744779429216, 13523760003648, 35250721087168, 84944161233120, 192127452262272, 409984511707776, 834658207381584, 1624411151609760, 3049176879087248, 5521413521657280, 9716572902143328]]
[25, [1, 1200, 202450, 11389600, 285385200, 3779134240, 30885301600, 181284196800, 842726826450, 3262594952400, 10968671291040, 32802221530400, 89267475949600, 223991253535200, 525491835433600, 1161295395893440, 2440508069871600, 4898380398568000, 9456583413620850, 17601674014456800, 31764761129879200]]
[26, [1, 1300, 239252, 14797120, 410468500, 6030043240, 54177864000, 343594659200, 1706685733012, 7010460268500, 24832297608040, 77924078814400, 221394909419840, 578472382307304, 1407681394953600, 3221568346322560, 6988918697572500, 14466438251512104, 28723680851525972, 54955933066382400, 101702425588365160]]
[27, [1, 1404, 280854, 19014840, 581257404, 9436118328, 93086496360, 638406025200, 3387901252374, 14765641285044, 55108831380408, 181434042582840, 538265644820280, 1464212332875816, 3696677780664960, 8759016189382896, 19620550996489404, 41872709357187696, 85529698383793614, 168166018677618216, 319216925216931768]]
[28, [1, 1512, 327656, 24189984, 811401192, 14500933104, 156797510688, 1163495873088, 6597606440936, 30505974273096, 119983597365744, 414352982942304, 1283861585339424, 3635198568784944, 9523977599887936, 23358459198626496, 54039921152557032, 118876818364991568, 249860594326120008, 504728808620994720, 982979367330327024]]
[29, [1, 1624, 380074, 30488976, 1117791544, 21911472464, 259172461296, 2081117152992, 12613606876714, 61865177248552, 256462892399504, 928859670458448, 3006249397711056, 8858986222461872, 24088488255932096, 61146089973555552, 146117613009432632, 331281589561600160, 716578329768711354, 1486998916193387184, 2971591747809448848]]
[30, [1, 1740, 438540, 38099040, 1521151500, 32592806520, 420775407200, 3655476494400, 23690038522380, 123233778584940, 538518903906552, 2045337982427040, 6914885182908000, 21207036616238520, 59847918853661760, 157231420280219584, 388094025605841420, 906869192637613080, 2018715060481365420, 4303383637492581600, 8824294692839138040]]
[31, [1, 1860, 503502, 47229864, 2046701220, 47775740520, 671636175480, 6309132101904, 43733123309262, 241275541236780, 1111479953165352, 4426891212365160, 15633379938039144, 49899492947343864, 146147632445771200, 397406328481552528, 1013148957319630500, 2440161908107807952, 5589676687772302966, 12241554552984167160, 25755553416637335080]]
[32, [1, 1984, 575424, 58115328, 2724906944, 69079796864, 1054968628480, 10706472186368, 79395777333184, 464573878394560, 2256126097001600, 9423431444080384, 34759556728866048, 115474354635222656, 350982387781513728, 987881573708613120, 2601123015997179840, 6457558989366956928, 15221194949728018112, 34248312026351479040, 73928444877139381376]]
[33, [1, 2112, 654786, 71015296, 3592319808, 98614192512, 1632114867328, 17875388306688, 141820480610754, 880219339775424, 4506220683398016, 19739221443625344, 76047426405791104, 262953752848837248, 829405814646351360, 2416450963949279488, 6571105534323612480, 16815939617686463232, 40785056696578571586, 94285427570798699136, 208805653293610437504]]
[34, [1, 2244, 742084, 86217472, 4692511428, 139099807880, 2489047659264, 29382088665600, 249369222884036, 1641869055038916, 8860642360669320, 40707711590868224, 163797472570290944, 589511537253470856, 1929572788503833088, 5819255124075374080, 16342941364998777540, 43111163441224005000, 107589173820434997188, 255543757747733874432, 580614999165620921480]]
[35, [1, 2380, 837830, 104039320, 6077113420, 194015502744, 3744835385480, 47578912132400, 431833448394950, 3016461775970020, 17160396820563864, 82689238761879960, 347497817081977240, 1301746850099643080, 4421575623848670720, 13803058326450694448, 40035461652998329420, 108862061348826948400, 279550204291077467230, 682187522811751672520, 1590223759684822652824]]
[36, [1, 2520, 942552, 124830048, 7806968280, 267772521744, 5562557800800, 75951250082496, 736831099167192, 5460799823164920, 32748641010875664, 165514090360142880, 726465611491844448, 2832525877217028048, 9984123911261833920, 32262229857439895616, 96644313054689681880, 270878531986080745776, 715761543475698773496, 1794541390237379155680, 4291860930734291909904]]
[37, [1, 2664, 1056794, 148972656, 9953399304, 365921147824, 8163258314256, 119597548195872, 1239391811991194, 9745233570636952, 61609295691064944, 326597524550490288, 1497196642542832176, 6075984718042868304, 22225028881973326912, 74337473128386333600, 229988493902004444936, 664457654598844109152, 1806655171676194402314, 4653698168319059461968, 11419085895334809136752]]
[38, [1, 2812, 1181116, 176886048, 12599607484, 495394207384, 11843630888736, 185886180236992, 2056130097966268, 17150568272891100, 114303284464647704, 635553953336625376, 3043086948436643616, 12853691613921890904, 48791664731735114432, 168923174867580925248, 539765733887226387644, 1607416101409060228472, 4497294755894357458332, 11901773369017113604768, 29963055119264915340312]]
[39, [1, 2964, 1316094, 209027208, 15842203572, 664792507080, 16998268681368, 285345150337104, 3365941445206782, 29777240693878236, 209215435001112072, 1220155819685626824, 6102142531936618440, 26826945551844218520, 105677341468592172864, 378706598865712166608, 1249787083449735359412, 3836378587257542276496, 11044821525347480286598, 30030157748537873897880, 77566119196460997440520]]
[40, [1, 3120, 1462320, 245893440, 19792883760, 884717790112, 24147448985920, 432855539095680, 5439867081224240, 51024388607161840, 377925692648758176, 2311828718036596160, 12076325113647462720, 55258802243177832480, 225894020902792394880, 837922349252103601536, 2855961811305420582960, 9036524878000691192160, 26770192778468917234160, 74780870224218969913920, 198172571789841855437728]]
[41, [1, 3280, 1620402, 288024672, 24580257680, 1168159340512, 33971596798880, 649237878131776, 8683708343211698, 86322811423907760, 673977940881914976, 4324346553745956320, 23594791016741569248, 112373740165845667616, 476716600185913087360, 1830368645195764804928, 6443191629889162086800, 21014288031859432240064, 64058450518363788497682, 183847011771941652626720, 499858750759811796384864]]
[42, [1, 3444, 1790964, 336005824, 30351837684, 1530940938408, 47353759443648, 963342807437952, 13698191148446196, 144242851393605300, 1187013596538690984, 7988222608927186752, 45526484181023926976, 225683472479132529960, 993544787069503165056, 3948627822151732074880, 14355605005513083277812, 48261418497124590978024, 151381566173619091602740, 446369593591372088412096, 1245153274370742690277800]]
[43, [1, 3612, 1974646, 390469240, 37276198620, 1992235478520, 65431639315112, 1414784111195760, 21363058099953526, 238149668458074388, 2065271888000259960, 14577365408975111160, 86778165276794876920, 447752053048303878504, 2045589436006114852224, 8415088149377413297520, 31597043700929688644316, 109493876778527685657584, 353405938952937766733806, 1070623418671287055194984, 3064098127861622944029560]]
[44, [1, 3784, 2172104, 452097184, 45545317576, 2575155209264, 89660973247648, 2057484301193024, 32953489081394376, 388649134382308008, 3550983885332760624, 26286715322506463200, 163448683981013707936, 877815757629273245552, 4161780665859803103040, 17721547148427132981696, 68723006258858639123656, 245476497087950706480144, 815277009565266028320936, 2537517139640843807601440, 7450972920603097999394864]]
[45, [1, 3960, 2384010, 521624400, 55377103320, 3307426231824, 121892317700400, 2964241181293920, 50299827862307850, 627163962734020360, 6035410491750694224, 46854014968659908880, 304297378385575293840, 1701047831240174822640, 8369306397107313831360, 36888834239882740396512, 147743644093286996957400, 543977021439433920875040, 1859033820761919044705370, 5944722654363693006155760, 17909106681549810556695888]]
[46, [1, 4140, 2611052, 599840736, 67018125420, 4222156618424, 164463601475040, 4232569247463744, 76004850661311596, 1001109838673418060, 10143480948171060024, 82571796820419222560, 560115286465036588512, 3259052873842515520248, 16640395332885527444800, 75919437264083991860928, 314037149331078085727340, 1191836115047264823513304, 4191165803741335074725004, 13769539726145045949802080, 42559856748226014373309752]]
[47, [1, 4324, 2853934, 687593832, 80746553284, 5358708267816, 220311144761016, 5992123438556048, 113736905985171502, 1581315551638626444, 16862566236863499240, 143916122317077701160, 1019604050911451615784, 6175012304042413993784, 32719823078748978144448, 154520158805605372057872, 660128103579641521215428, 2582424058096501396180560, 9344529589056656406012310, 31541489566055534873934904, 100023323889942538865069544]]
[48, [1, 4512, 3113376, 785791872, 96875315616, 6763683414720, 293102217821056, 8414075863671552, 168622365198254496, 2472562531531980832, 27736395024393085632, 248139579890464622208, 1835986185002939939712, 11573413786349169929664, 63640852572427508785920, 311097167722066085728512, 1372634797639492206592416, 5535010786414722734528832, 20609142765989970203160608, 71470177750397835003888000, 232531699106546664748589760]]
[49, [1, 4704, 3390114, 895406400, 115755491040, 8492037549632, 387392627620544, 11722890040874880, 247767164972339362, 3828424156205839008, 45154189480417663296, 423356084326686995008, 3271121112943667769408, 21461709941573992929216, 122472660390060456632576, 619706321449560969104768, 2823979399419216267131616, 11737878719907676947436672, 44972048668391014172152290, 160231480848980530771422144, 534863840491664871588174144]]
[50, [1, 4900, 3684900, 1017475200, 137779940900, 10608331387080, 508813279363200, 16211023387641600, 360945048625380900, 5871984218650395300, 72777694962263662280, 714910303873915900800, 5767878361495107715200, 39386275590645554758600, 233247498388449049388800, 1221661417281854603505920, 5749681423147539513982500, 24634122723827333941603400, 97118478236074066740808100, 355506356928628484760899200, 1217533065913380509499410120]]
[51, [1, 5100, 3998502, 1153105240, 163387195500, 13188135445080, 664290165581000, 22257188865735600, 521499719190179622, 8924532432265106500, 116166126969336296280, 1195211729173952947800, 10067656683832769582680, 71548211019296692710408, 439706216301392062982400, 2383873245883380529354160, 11587610945394460751112300, 51174435909416999296832688, 207601157641922638919028862, 780756675904183361598318600, 2743386985289268437091191640]]
[52, [1, 5304, 4331704, 1303475680, 193065605304, 16319601767248, 862302791665120, 30348922637092800, 747519847870453944, 13445004171207696984, 183682764146804624208, 1978773353590745048480, 17399315857793454638560, 128682265229505007371024, 820665015623406722525120, 4605445416232558058471232, 23120669480397861067643064, 105250933550818269152815344, 439354340397428980578162264, 1697623660229051142995133792, 6119991092311362063535770448]]
[53, [1, 5512, 4685306, 1469840944, 227357768872, 20105218332784, 1113186657215568, 41110338355629728, 1063360138194067066, 20083790276552219256, 287799059912477065264, 3244997658407131836784, 29779980555917284035824, 229189666553906219004816, 1516750028313527617393472, 8810527185645786672919584, 45682348251115860769246632, 214358532054417196218274528, 920751363346351916460411306, 3655186949954152577015389328, 13519388354490357354705463344]]
[54, [1, 5724, 5060124, 1653533856, 266865249564, 24663762759384, 1429486081204896, 55336102527840192, 1501598892693637404, 29755637702370479292, 446955414869923659864, 5272393666964582906208, 50489456563598746221216, 404311428686749230067608, 2776459590758215646884800, 16693853037913375742127168, 89396383038780568363350300, 432393630325638785907707448, 1911146097905933862282977916, 7794747225818563563414593568, 29579285203322402284706215512]]
[55, [1, 5940, 5456990, 1855968840, 312253593300, 30132473011080, 1826364389751000, 74032841664738000, 2105543300639336030, 43737750135642670140, 688195594046696734152, 8489517769015803951240, 84811624067056462705800, 706590868816622375265240, 5034775198875616617811520, 31333988515007080222859088, 173298206786341652607451860, 864012948800575256413624080, 3929598325506881234808205990, 16466354339756050803371272920, 64109357130521155020098917320]]
[56, [1, 6160, 5876752, 2078645184, 364257659920, 36669453978080, 2322079282514880, 98469393393807744, 2932418577697852432, 63800948576107961680, 1050868581030513385952, 13550182071759176612160, 141182763248517178313664, 1223589621872356530444128, 9046075416880018007413120, 58271566264611831740391552, 332848929066793331854920720, 1710565072768929229907933984, 8005362094437762904300667216, 34464473802075833544381071040, 137668346966590186727534387680]]
[57, [1, 6384, 6320274, 2323150368, 423687280944, 44456339999904, 2938532061809120, 130237543225530048, 4057406846819753874, 92383948394183579280, 1591793005267361571360, 21443600024000568917664, 232954835543722533379488, 2099919421780534661588064, 16106820788602541549332608, 107387787420428901442804160, 633509479514196412755779376, 3355912552481045511232095552, 16160895782646625961453283762, 71482159955379730713525997152, 292953542256036949389435183648]]
[58, [1, 6612, 6788436, 2591163456, 491433256788, 53701234657512, 3701900352042048, 171325149463832448, 5578737060232585044, 132823551358622863764, 2392412181923632773096, 33654448998698003603904, 381080391903994332738624, 3572322202078652171746920, 28425319872869374315300736, 196147835799827523972222080, 1195042951785770951917403988, 6525355861976023460094996136, 32334938774470713027905107220, 146942002010316858547019602752, 617853957203328793104744561640]]
[59, [1, 6844, 7282134, 2884458552, 568473706748, 64641950465720, 4643364960947944, 224203854285962480, 7624069243544547286, 189656957699432622196, 3568641074532764277560, 52393730964407331348664, 618167637340132243742904, 6025050643950303120433832, 49730370772493425970141312, 355151738574523821887515120, 2234641306116908330976115964, 12577341420988751480449504624, 64131141477078715484983047694, 299422558321967347701370220712, 1291704913864065947120707266360]]
[60, [1, 7080, 7802280, 3204908320, 655880785320, 77549572455024, 5799942643182880, 291933913069147200, 10358465938143743400, 269016616226988666120, 5284331123318106179184, 80929339597780590507360, 994556649994771947646240, 10076571117037523947231920, 86264552405836544316056640, 637552356335537628780263616, 4142796130107239768257105320, 24034274000848242186034464720, 126102043534620822017795544840, 604893706647553040802757971360, 2677298764084608964742473467504]]
[61, [1, 7320, 8349802, 3554487568, 754827778680, 92732371043024, 7215437726521200, 378289050704503776, 13994302109796570602, 379143217943843430120, 7769568533355337395984, 124056091494898985558480, 1587354644056403561952848, 16714206938795798718641712, 148391735361843229104391360, 1134899513572589215080657504, 7615641126024648995076353400, 45540219760883626086467382176, 245864217054536878068929292282, 1211694514112553727723469598000, 5502370791090957865061663606544]]
[62, [1, 7564, 8925644, 3935276896, 866596595404, 110540091060984, 8941526856500576, 487904677349728832, 18803533316175465164, 531048799012571057452, 11345393173613143713144, 188759552956047522726048, 2513771847757266986548576, 27501583169447561134350392, 253177409576650011200439872, 2003573981378615424815257024, 13883873502889719456485169868, 85574389318632788047409644952, 475390431854977491734069591916, 2407067377242329331614986313696, 11214598225734459614564275623800]]
[63, [1, 7812, 9530766, 4349466408, 992585665764, 131368645321704, 11038992512578296, 626453271629958672, 25132822091017078158, 739369686136203925740, 16456999490579903921064, 285147455442192870639336, 3950663765103185254813416, 44895787203788856700671096, 428497535240322818649213888, 3508530828203491245972629904, 25105489681752465039194791140, 159491663921675145208299737040, 911690617628393642851207682230, 4742681609508885442550913582456, 22670329347374079672983371646376]]
[64, [1, 8064, 10166144, 4799359488, 1134318264192, 155665242691840, 13579122453539328, 800851271883531264, 33422116002977750912, 1023458465674068094336, 23718083276909619747072, 427748334084792470367744, 6162969008645834376768000, 72728656472261029845540096, 719530428077692281917907968, 6095109854994973173145684992, 45034137305014224488591728512, 294874364670274602644323223296, 1734382150839033990641710067072, 9269538217643483466589602427392, 45460030230762790760845457004800]]
[65, [1, 8320, 10832770, 5287376640, 1293451269760, 183933982266112, 16645293868120320, 1019502411255278080, 44227379585675170690, 1408775608043118906240, 33969759878411108800256, 637311148306718560879360, 9544812889440967067953920, 116931827899649647665911040, 1198935777674592592152693760, 10506001566736487957222158848, 80147518372597228405957453440, 540877363646230306284224529920, 3273400138186843340726674557570, 17974082586571805864893681337600, 90438879831088034716850442393344]]
[66, [1, 8580, 11531652, 5816059392, 1471784379780, 216741946933512, 20334762744890880, 1292583096283370496, 58248308442686858628, 1928655205395143056260, 48358438325771789986056, 943284469433653420485120, 14678529531328094402201088, 186621300161692208741508360, 1982696444031213578683192320, 17970306428755878172769192960, 141537730415501647736191296900, 984418869483939321958022712072, 6130072860858715022169795047300, 34581544283700759588797774753280, 178520593629628952937084374993160]]
[67, [1, 8844, 12263814, 6388074264, 1671269791884, 254725831377688, 24760680839901448, 1632376167579769392, 76361999688720675206, 2626535918441661353380, 68438237811029382024984, 1387212403616348893737752, 22418876726733220441535256, 295708635982747253817820488, 3254594679734815629556427776, 30506834805165041859669660208, 248053910688435755486072903820, 1778016301699903640072084014640, 11391955660635623089285079410846, 66024341385384625846580896535880, 349688809416549322094952711417624]]
[68, [1, 9112, 13030296, 7006216800, 1894022370200, 298599141366160, 30054364618236512, 2053660202221524160, 99663721151658972056, 3558768182350599985848, 96305033277736280422800, 2027360606300036759885600, 34012458345245811164127840, 465278553031649195465412176, 5303761500373705959430345920, 51407112032050929002928037440, 431487741854300360294117397400, 3187281715133290492759592612016, 21011140931633027587592155269816, 125105801958920846730224528133088, 679808379414817895718783852902800]]
[69, [1, 9384, 13832154, 7673415664, 2142330311496, 349160003056944, 36367842683411088, 2574162428008652064, 129516115386055113306, 4798132575619821163608, 134771082299144871938544, 2944984357864256830351920, 51266064371102127275216816, 727074674550724640678251728, 8581884450775919351509230144, 85999046304141850325857455264, 745067001815240996896177612872, 5671360400719164851132844708960, 38465474145824859361823137654602, 235296159060283998456113251434960, 1311753946449985413065330025402864]]
[70, [1, 9660, 14670460, 8392736800, 2418666327420, 407299622987544, 43876710493767200, 3215084327794864320, 167608396821558303100, 6438232683154440239260, 187591495798228109189784, 4252777725906609687859680, 76782594792642257080606240, 1128577686694289785187810520, 13789779287446935806219588800, 142845872063844756579158225728, 1277267370884847403013262592380, 10018168781604922896899662771960, 69905758610118335457843306373980, 439304200301642778241436963759520, 2512625436459885542098164170854552]]
[71, [1, 9940, 15546302, 9167387656, 2725699359220, 474011441411144, 52783323605161240, 4001710126211437904, 216027354932403604926, 8598959560331054882460, 259756666047441938056584, 6106205817868712874642760, 114289846828474762932240712, 1740357973393294525798162712, 22007538244769834694557302080, 235615545909158902638152947664, 2174114000297458614572128179700, 17570134309665094083117153089680, 126131775442598256871586344895430, 814286036272106699314372375735320, 4778150537699178792669857852220296]]
[72, [1, 10224, 16460784, 10000721472, 3066306841584, 550401023709216, 63320363282028096, 4964109580423191168, 277342267199350524912, 11433264918138407702704, 357868270613271921461280, 8718630291208810884646080, 169096225736019160562193984, 2666657939567435116980649632, 34888938096928731371744934528, 385975947675438321909364339584, 3674942045843562287987910396912, 30598347975945095885259229723872, 225971723736564829107517656278192, 1498637711653901684013424256817984, 9021830370507347011538503881607200]]
[73, [1, 10512, 17415026, 10896241632, 3443587532496, 637696736739680, 75754811092363296, 6137947850839601472, 354706157300392328306, 15135527419252051186032, 490620765728291026417632, 12381403065595993449135968, 248719042237564408676530272, 4060534323329749674728950176, 54950025123347299022210182016, 628049355519607486027401508416, 6169349564955010432373454356688, 52918412149530421634529858950848, 402021414587298300844285258474578, 2738862953013464529808457319935904, 16915202851518209340314268121085920]]
[74, [1, 10804, 18410164, 11857606080, 3860874926260, 737261259176232, 90392372054537664, 7565416717365046400, 451976211329146642612, 19951852165171122307188, 669415527198022994817576, 17490438622565306484706368, 363746320228214371726669248, 6145403186812516014231091112, 85994895167130595017512676480, 1015222009716485136121980489600, 10287298587342077164742754582708, 90897224291792997826179898589544, 710323905503911079653324191213812, 4970990569718800238813557094401728, 31495713332448522268488641861742120]]
[75, [1, 11100, 19447350, 12888631800, 4321751267100, 850603977158520, 107582389043669800, 9296303042904044400, 573856593317927863350, 26192708892519617823700, 909141180643207713705720, 24581198595678549205966200, 529013019806082554189671800, 9245526657013410580785460200, 133740170217413003898330825600, 1630488639220554283154540195440, 17040728687451307504632564476700, 155087872946342727921892405225200, 1246584526055170572130375515592750, 8961046518398829481885311268468200, 58245233091393288452018343334093560]]
[76, [1, 11400, 20527752, 13993299360, 4830062181000, 979394318905520, 127723294501316000, 11389212180249979200, 726067386895486941832, 34248391092328818609000, 1229161408605633906156720, 34374554565965389062335200, 765198629106483014589359520, 13828922256421114273326243312, 206725606766037157068918446400, 2602070736850955928181835812800, 28044712865372735745441549515400, 262867110852802427367481705636752, 2173152948853959173668629663424872, 16045787785716260975231487452397600, 106990730918819946240608645425112240]]
[77, [1, 11704, 21652554, 15175757520, 5389931943704, 1125476084346768, 151268649033551280, 13912965983738632800, 915543939082596768714, 44607867934117216090824, 1654560891787724453171408, 47836661663071241806219920, 1100986892645500532746221840, 20567443178952004352265803632, 317634465356949053194063596480, 4126856046092497996311400375008, 45860673944525586557200547048984, 442662841931563143212560114289952, 3763627805062451756604813890451354, 28542532118285518435019185674287728, 195231570541195212076717451298621648]]
[78, [1, 12012, 22822956, 16440327904, 6005779403052, 1290882828299064, 178733820238439648, 16948197236485339968, 1150671502200533124396, 57881705459764737781516, 2217711342489855264454584, 66256807766904423587122464, 1575972159225260124680576224, 30420475861272579284523533688, 485197523369293852934972620608, 6505370201171915309784969733312, 74525767608168451728466984768812, 740687371653039200974880424419928, 6476118679782535638381539902504524, 50442316750983467842299156441657696, 353926099916520881114705423707808184]]
[79, [1, 12324, 24040174, 17791509736, 6682334574084, 1477854358260904, 210703359084035896, 20589164651812251792, 1441560768499921850094, 74829855207968751539532, 2960233179110139230821224, 91348238346276355726150568, 2244553123388087270526577576, 44750965591470948332097071544, 736924033783256349962299802304, 10193656238261630148390844369424, 120364516434948362619081962561028, 1231595191952006852380920127017296, 11072815300991156305551753918243798, 88574744454297580356647789864795832, 637490295494510934198346702806117736]]
[80, [1, 12640, 25305440, 19233984640, 7424655925600, 1688854410514240, 247839135372316800, 24945815168634041600, 1800370678009039331680, 96395249719151127471840, 3935444690026461380767552, 125378240531682146440109440, 3181126938864585108136169600, 65485487359438795929977732160, 1112998363707367185048410010880, 15879807042224254653954488383232, 193225878275126938915549214056800, 2035250152778095581290883157695680, 18813918981024875232036138927412960, 154553138366093488193370609650842240, 1140964487374055575399991311462264640]]
[81, [1, 12960, 26620002, 20772621504, 8238148377120, 1926589570914240, 290889298282985280, 30146123051027270784, 2241685762643552725602, 123744308048441721514080, 5211410030422093541852352, 171335356340541494870324160, 4486988952240099912319886784, 95334053842766802484404412992, 1671811608965547429070345578240, 24596250357322081318118745753216, 308357914962977607677601365483040, 3342946735214312587459237808666496, 31770259192005567605588880029165346, 268002534239837900000173203718893120, 2029302167063098227896381705512240320]]
[82, [1, 13284, 27985124, 22412481408, 9128582025444, 2194029509513544, 340698132704396160, 36338738338817872128, 2782956279059493134564, 158315643625277651148900, 6874720652187162066555720, 233143549342276265897814144, 6299460787187738474526688128, 138090585366756114818294822472, 2497775281098401460064461074688, 37883611363799861309035616106240, 489232711320789872034581671993572, 5458176111193899967010838232289736, 53324200056769130429526504571785572, 461883777324966524659161377896228224, 3587031901697152546617102857398365000]]
[83, [1, 13612, 29402086, 24158822616, 10102111620268, 2494428601009112, 398216887037680968, 43695980496617285808, 3445010490230815733734, 201878485073385857452804, 9035172440067184679836376, 315935549550628943631867864, 8803918564410540768932982744, 199041828427967775813277421192, 3712305200256662830195408518912, 58028601282116588081966223924912, 771779786525746981163970894357676, 8859641150894566667265287438940080, 88967502480946358853998204452107454, 791221964440566665304225789557944968, 6301950882986157108932396968619410136]]
[84, [1, 13944, 30872184, 26017105632, 11165296808568, 2831349005918160, 464515653415565024, 52417216692174221760, 4252649693439714710136, 256602571903273852100376, 11831533674052708452354000, 426400541104154415918239904, 12249581505038762673498519264, 285521471639840770714037701008, 5489189059633618900456818495936, 88407619720670389940293710638400, 1210696094170573414479413673251448, 14298115029081582721273297709981808, 147564811283530362119450063742241560, 1347331260056239943253600499759950432, 11005324332212771754737244669391914960]]
[85, [1, 14280, 32396730, 27992998320, 12325123167720, 3208685290385904, 540796386820739280, 62732668021101444000, 5235337973485418465850, 325141575741969826353720, 15438637832232491913872304, 573224947167081296285483760, 16970158658331329846497776240, 407657869121715046779566994960, 8075988358823354371900763300160, 133980586072316110977610589377824, 1888801654194914942272159344946920, 22944498391392932142110719055631840, 243343093046063733690379789173590250, 2280862045621305939064832308133590800, 19105351999050255950363472484889897904]]
[86, [1, 14620, 33977052, 30092381088, 13589024047580, 3630690665602904, 628407155431645600, 74907691205007352256, 6428000198780389416412, 410732428923666719133820, 20076081195733731990054104, 767649437988832261013738080, 23410749801412198338677881248, 579378897858907569281056881176, 11823710579871818569257133336000, 201997243302571877742158375930432, 2930839303181142355758421314489820, 36614913906849386328517922183088056, 399006584595976192253573076620034108, 3838927893435904110517473824528876320, 32973682330237175402281579668545817304]]
[87, [1, 14964, 35614494, 32321352136, 14964903242004, 4102004930964744, 728857720678142296, 89247587845984266192, 7871943490157661083934, 517313321355900733209852, 26018859373587966301961544, 1024170596947938999655744008, 32162770067124852370758675976, 819757000509114972129542753880, 17227767488561106612706067053632, 303002568692434659227866186948688, 4523726890510789334477929082103060, 58111107798162106044898768969488912, 650587177636731426420895360105965798, 6424576461896015742204697124688010584, 56581631476112523074025755792677675848]]
[88, [1, 15312, 37310416, 34686232768, 16461158510544, 4627684208342624, 843836551968037056, 106102998245651501952, 9615919294500591005648, 649663559755769742577680, 33610340555719280181923424, 1361422109656202034789701696, 44009134084764992526257690816, 1154802595495095430235965560288, 24984271051283940220124800463744, 452261338823342999312468921513600, 6946132176887849614877925888651216, 91732549974617258286668847200921248, 1054956316868428796258011469514273808, 10691522746119814815024551214166478784, 96541507226546274894609570771784175200]]
[89, [1, 15664, 39066194, 37193572768, 18086705971312, 5213232558151200, 975229387860526688, 125875942116140325824, 11717345305951575420242, 813568977469567567302736, 43278048043876725456403872, 1803278109652926802258911264, 59982515641132162187150889760, 1619846270522673009942466395872, 36067088135183346975650016403072, 671767472756997188884495626945216, 10611453294577374013428825390313072, 144042913068357876512596558630971456, 1701397155456704862388492490569941746, 17694229322910441940298475677085819104, 163801494545752363780640805957485231520]]
[90, [1, 16020, 40883220, 39850155840, 19851005386260, 5864635571300712, 1125139462627110720, 149026574249454084480, 14243708816161591621140, 1016017145757802146061140, 55552812136778319440530536, 2380230675882083325071482560, 81440218851223584371785101120, 2262691384162415199510175981800, 51832879883235403250191015674240, 993065688790265700702166293340800, 16129985890745229591244523017868820, 225011562268768444218722264355568680, 2729338779791959441136732215816378580, 29124393450259531683515090296461871680, 276389169834864184325298811071243452520]]
[91, [1, 16380, 42762902, 42663005112, 21764086360380, 6588396034605112, 1295909524667819880, 176080729397800786416, 17274175663085960158358, 1265427277090139696702260, 71091953734387332789105336, 3131104731257966337130084920, 110160087693924640469871811128, 3147771210094457910921401464104, 74163720922578781851414781476480, 1461196770930868770227527023739632, 24398426041106196000436535908496700, 349705217987520275438076190790350960, 4355394877255199989803540799673904718, 47681622265525550538204656325599456040, 463828457332260239329234885481560837816]]
[92, [1, 16744, 44706664, 45639388704, 23836575476584, 7391571770787568, 1490145781154223648, 207638337279435591232, 20901431808171087571816, 1571920437007982758524360, 90707281328774486265619184, 4105187088601110691768723552, 148462980023921803082302395936, 4361611457533988964079224000816, 105659992890831950804193409490496, 2140190615408047859753911608989376, 36728145591768309861740535542000488, 540782942355083020576545394774484816, 6914381754472605224040456863513950152, 77651423226335898644627458237465086624, 774212967726450701238590040698959487728]]
[93, [1, 17112, 46715946, 48786825360, 26079724388280, 8281815757880400, 1710743911564592112, 244382795792376488160, 25233787729158322345386, 1947636503830224752663208, 115398821925171608651997840, 5364862539565834368026940240, 199368684901271570955991415760, 6019983461662891400081968924848, 149900287024387022347391176180416, 3120682748882136405494357678556000, 55028221722529188825156651010235064, 832158636462134100337009000474685088, 10921236909212115282144087054252739386, 125801863120491528682452883033289725872, 1285474010726783262427662725149974575760]]
[94, [1, 17484, 48792204, 52113090144, 28505438891916, 9267418636559224, 1960917301475064928, 287091398223682749504, 30397579296803754161036, 2407105246343608381340908, 146395367791834060569078264, 6988869161480762101584052640, 266793822350790844792230835296, 8277239967221050032513757944504, 211790299553826541552433721616448, 4530432646846117469233313987675072, 82065460481051240691301591484171148, 1274352622729749638033978983590176536, 17164036390919984515254346771983096108, 202767617331836233977248502461871971040, 2123238376413291560845370754090521070584]]
[95, [1, 17860, 50936910, 55626220200, 31126309002020, 10357353717781864, 2244227657088347000, 336646918517988520720, 36539902637249730870350, 2967679941264725288031660, 185203108063366873037122344, 9076307982221197940766437480, 355802297161951565511600449640, 11338459650196245218411426852600, 298029500465521067020697392187840, 6548792182670474006057805059914384, 121832235729401926708138102115015460, 1942276010496907268952311182625936080, 26843067932361648971465425310531142390, 325175811603342569798980858407180658680, 3488986245373935202597276004650802119976]]
[96, [1, 18240, 53151552, 59334520576, 33955640051520, 11561324607022464, 2564618170533277440, 394050467550457419264, 43831724698408040859456, 3650043138612603399351360, 233663830844106046138230144, 11751569440230400021168968960, 472921360286535475153166266112, 15475194992617219000176432302976, 417733128820716408997571835778560, 9426531011128539893070734331875840, 180064687104473451358115250869962560, 2946503703724638803275689931394718336, 41777796122601853387625086803402058816, 518895417590322600275705085386080623360, 5704228691829759217304970570342609724800]]

2018年10月15日月曜日

181015(3)

Ruby


A320466, A320470, A240026 とA240027

n が50以下のとき、出力してみた。

@ary1 = [1]
@ary2 = [1]
@ary3 = [1]
@ary4 = [1]

def partition(n, min, max)
  return [[]] if n == 0
  [max, n].min.downto(min).flat_map{|i| partition(n - i, min, i).map{|rest| [i, *rest]}}
end

# n > 0
def f(n)
  cnt1, cnt2, cnt3, cnt4 = 0, 0, 0, 0
  partition(n, 1, n).each{|ary|
    ary0 = (1..ary.size - 1).map{|i| ary[i - 1] - ary[i]}
    ary1 = ary0.sort
    if ary1 == ary0
      cnt1 += 1
      cnt2 += 1 if ary0.uniq == ary0
    end
    if ary1 == ary0.reverse
      cnt3 += 1
      cnt4 += 1 if ary0.uniq == ary0
    end
  }
  @ary1 << cnt1
  @ary2 << cnt2
  @ary3 << cnt3
  @ary4 << cnt4
end

n = 50
(1..n).each{|i| f(i)}
puts "A320466"
p @ary1
puts "A320470"
p @ary2
puts "A240026"
p @ary3
puts "A240027"
p @ary4

出力結果
A320466
[1, 1, 2, 3, 4, 5, 7, 7, 9, 12, 12, 13, 18, 17, 21, 25, 24, 27, 34, 33, 38, 44, 43, 47, 58, 56, 62, 70, 70, 78, 90, 84, 96, 109, 108, 118, 132, 127, 140, 158, 158, 167, 189, 185, 204, 221, 218, 236, 260, 261, 282]
A320470
[1, 1, 2, 2, 3, 4, 4, 5, 7, 6, 8, 10, 10, 11, 14, 13, 16, 19, 18, 20, 25, 23, 27, 31, 30, 34, 39, 37, 42, 48, 47, 50, 59, 56, 63, 70, 68, 74, 83, 82, 89, 97, 97, 104, 116, 113, 123, 133, 133, 142, 155]
A240026
[1, 1, 2, 3, 5, 6, 10, 12, 16, 21, 27, 32, 43, 50, 60, 75, 90, 103, 128, 146, 170, 203, 234, 264, 315, 355, 402, 467, 530, 589, 684, 764, 851, 969, 1083, 1195, 1360, 1504, 1659, 1863, 2063, 2258, 2531, 2779, 3039, 3379, 3709, 4032, 4474, 4880, 5304]
A240027
[1, 1, 2, 2, 4, 4, 5, 7, 9, 9, 13, 14, 16, 20, 23, 25, 32, 34, 38, 45, 51, 55, 65, 70, 77, 89, 99, 106, 122, 131, 143, 161, 177, 189, 211, 229, 248, 272, 298, 317, 349, 378, 406, 440, 479, 511, 554, 597, 640, 686, 744]

181015(2)

Ruby


A320509 とA320510

n が50以下のとき、出力してみた。

@ary1 = [1]
@ary2 = [1]

def partition(n, min, max)
  return [[]] if n == 0
  [max, n].min.downto(min).flat_map{|i| partition(n - i, min, i).map{|rest| [i, *rest]}}
end

# n > 0
def f(n)
  cnt1, cnt2 = 0, 0
  partition(n, 1, n).each{|ary|
    ary << 0
    ary0 = (1..ary.size - 1).map{|i| ary[i - 1] - ary[i]}
    if ary0.sort == ary0
      cnt1 += 1
      cnt2 += 1 if ary0.uniq == ary0
    end
  }
  @ary1 << cnt1
  @ary2 << cnt2
end

n = 50
(1..n).each{|i| f(i)}
puts "A320509"
p @ary1
puts "A320510"
p @ary2

出力結果
A320509
[1, 1, 2, 3, 3, 4, 6, 4, 6, 8, 7, 8, 11, 7, 12, 14, 10, 13, 19, 12, 18, 21, 16, 19, 27, 19, 25, 30, 25, 30, 37, 25, 35, 40, 35, 42, 49, 35, 49, 56, 46, 54, 66, 50, 65, 72, 60, 70, 83, 68, 84]
A320510
[1, 1, 2, 1, 2, 2, 2, 2, 4, 2, 3, 4, 3, 4, 6, 3, 5, 6, 5, 6, 9, 5, 7, 9, 8, 8, 11, 8, 11, 13, 10, 12, 15, 11, 15, 16, 14, 16, 21, 15, 20, 22, 18, 21, 26, 21, 24, 28, 25, 28, 33]

181015

Ruby


A320387, A320385, A007294 とA179269

n が100以下のとき、出力してみた。

@ary1 = [1]
@ary2 = [1]
@ary3 = [1]
@ary4 = [1]

def partition(n, min, max)
  return [[]] if n == 0
  [max, n].min.downto(min).flat_map{|i| partition(n - i, min, i - 1).map{|rest| [i, *rest]}}
end

# n > 0
def f(n)
  cnt1, cnt2, cnt3, cnt4 = 0, 0, 0, 0
  partition(n, 1, n).each{|ary|
    ary << 0
    ary0 = (1..ary.size - 1).map{|i| ary[i - 1] - ary[i]}
    ary1 = ary0.sort
    if ary1 == ary0
      cnt1 += 1
      cnt2 += 1 if ary0.uniq == ary0
    end
    if ary1 == ary0.reverse
      cnt3 += 1
      cnt4 += 1 if ary0.uniq == ary0
    end
  }
  @ary1 << cnt1
  @ary2 << cnt2
  @ary3 << cnt3
  @ary4 << cnt4
end

n = 100
(1..n).each{|i| f(i)}
puts "A320387"
p @ary1
puts "A320385"
p @ary2
puts "A007294"
p @ary3
puts "A179269"
p @ary4

出力結果
A320387
[1, 1, 1, 2, 1, 2, 3, 2, 2, 4, 3, 4, 5, 3, 5, 7, 4, 7, 8, 6, 8, 11, 7, 9, 13, 9, 11, 16, 12, 15, 18, 13, 17, 20, 17, 21, 24, 19, 24, 30, 22, 28, 34, 26, 34, 38, 30, 37, 43, 37, 42, 48, 41, 50, 58, 48, 55, 64, 53, 64, 71, 59, 73, 81, 69, 79, 89, 79, 90, 101, 87, 100, 111, 97, 115, 124, 108, 126, 137, 121, 140, 152, 138, 151, 169, 151, 166, 185, 167, 191, 201, 182, 206, 220, 204, 228, 243, 222, 250, 268, 243]
A320385
[1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 3, 2, 3, 4, 3, 3, 5, 3, 5, 6, 4, 5, 7, 5, 7, 8, 6, 7, 10, 8, 9, 11, 8, 11, 13, 9, 13, 15, 12, 14, 17, 13, 16, 20, 15, 18, 22, 18, 21, 25, 20, 23, 27, 23, 28, 30, 26, 30, 34, 30, 33, 38, 31, 38, 43, 36, 42, 46, 42, 47, 50, 45, 50, 58, 51, 55, 61, 56, 64, 68, 60, 68, 74, 70, 75, 80, 74, 82, 89, 82, 89, 96, 90, 99, 104, 97, 108, 114, 107, 116]
A007294
[1, 1, 1, 2, 2, 2, 4, 4, 4, 6, 7, 7, 10, 11, 11, 15, 17, 17, 22, 24, 25, 32, 35, 36, 44, 48, 50, 60, 66, 68, 81, 89, 92, 107, 117, 121, 141, 153, 159, 181, 197, 205, 233, 252, 262, 295, 320, 332, 372, 401, 417, 465, 501, 520, 575, 619, 645, 710, 763, 793, 869, 933, 971, 1059, 1134, 1180, 1286, 1374, 1430, 1549, 1654, 1722, 1863, 1985, 2065, 2225, 2372, 2467, 2654, 2821, 2934, 3149, 3345, 3478, 3724, 3949, 4109, 4391, 4652, 4835, 5157, 5460, 5676, 6043, 6390, 6638, 7059, 7457, 7747, 8220, 8676]
A179269
[1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 5, 5, 5, 7, 7, 7, 10, 10, 10, 13, 14, 14, 18, 19, 19, 23, 25, 25, 30, 32, 33, 38, 41, 42, 48, 52, 54, 60, 65, 67, 75, 81, 84, 92, 99, 103, 113, 121, 126, 136, 147, 153, 165, 177, 184, 197, 213, 221, 236, 253, 264, 280, 301, 313, 331, 355, 371, 390, 418, 435, 458, 490, 511, 535, 571, 595, 624, 665, 693, 723, 771, 803, 838, 891, 928, 966, 1028, 1070, 1113, 1180, 1230, 1277, 1354, 1409, 1462, 1547, 1612, 1670, 1766, 1837, 1904]

2018年10月13日土曜日

181013

Ruby


Expansion of Product_{d | k} theta_3(q^d)

k <= 96 のとき、出力してみた。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

def A(ary, n)
  a_ary = [1]
  a = [0] + (1..n).map{|i| ary.inject(0){|s, j| s + j[1] * s(j[0], i)}}
  (1..n).each{|i| a_ary << (1..i).inject(0){|s, j| s - a[j] * a_ary[-j]} / i}
  a_ary
end

def B(k, n)
  ary = []
  (1..k).select{|i| k % i == 0}.each{|i|
    ary << [2 * i, 5]
    ary << [i, -2]
    ary << [4 * i, -2]
  }
  A(ary, n)
end

n = 100
(1..96).each{|i| p [i, B(i, n)]}

出力結果
[1, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]]
[2, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 0, 4, 2, 0, 8, 0, 0, 0, 0, 2, 8, 4, 0, 6, 0, 4, 0, 0, 4, 0, 4, 4, 0, 0, 0, 4, 2, 2, 8, 0, 0, 8, 0, 0, 8, 0, 4, 0, 0, 0, 0, 2, 0, 8, 4, 4, 0, 0, 0, 6, 4, 0, 4, 4, 0, 0, 0, 0, 10, 4, 4, 0, 0, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 4, 4, 2, 12, 2]]
[3, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 0, 6, 4, 0, 0, 6, 0, 0, 4, 0, 4, 0, 0, 0, 2, 0, 2, 12, 0, 0, 4, 0, 0, 0, 0, 6, 4, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 6, 6, 0, 0, 12, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 4, 6, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 2, 12, 0, 0, 4, 0, 2, 0, 0, 12, 0, 0, 0, 0, 0, 0, 8, 0, 4, 0, 0, 0, 4, 0, 0, 6]]
[4, [1, 2, 2, 4, 4, 4, 8, 8, 6, 6, 8, 4, 8, 12, 0, 8, 12, 8, 10, 12, 8, 8, 24, 8, 8, 14, 8, 16, 16, 4, 0, 16, 6, 16, 16, 8, 12, 20, 24, 8, 24, 8, 16, 20, 8, 20, 0, 16, 24, 18, 10, 8, 24, 12, 32, 24, 0, 16, 24, 12, 16, 20, 0, 24, 12, 8, 16, 28, 16, 16, 48, 8, 30, 32, 8, 20, 24, 16, 0, 16, 24, 18, 32, 20, 16, 24, 24, 24, 24, 16, 24, 24, 16, 24, 0, 8, 8, 40, 18, 20, 28]]
[5, [1, 2, 0, 0, 2, 2, 4, 0, 0, 6, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 2, 8, 0, 0, 4, 2, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 6, 4, 0, 0, 6, 0, 0, 0, 0, 8, 0, 4, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 8, 0, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 2]]
[6, [1, 2, 2, 6, 6, 4, 14, 8, 6, 26, 12, 16, 42, 12, 16, 44, 6, 20, 50, 16, 36, 56, 24, 16, 42, 30, 28, 78, 48, 36, 84, 40, 6, 80, 36, 48, 150, 44, 40, 100, 36, 36, 112, 48, 72, 148, 48, 48, 42, 50, 62, 124, 84, 52, 158, 64, 48, 144, 60, 64, 252, 60, 64, 200, 6, 88, 168, 64, 108, 176, 96, 80, 150, 84, 76, 218, 120, 96, 196, 72, 36, 242, 84, 80, 336, 104, 88, 204, 72, 84, 300, 112, 144, 216, 96, 128, 42, 100, 114, 304, 186]]
[7, [1, 2, 0, 0, 2, 0, 0, 2, 4, 2, 0, 4, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 2, 4, 0, 0, 8, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 2]]
[8, [1, 2, 2, 4, 4, 4, 8, 8, 8, 10, 12, 12, 16, 20, 16, 24, 24, 20, 26, 20, 24, 32, 24, 24, 32, 30, 28, 40, 32, 20, 48, 32, 24, 48, 36, 48, 52, 36, 40, 56, 48, 52, 64, 44, 48, 84, 48, 48, 96, 50, 62, 72, 56, 68, 80, 72, 64, 80, 60, 60, 96, 52, 64, 104, 24, 72, 96, 68, 72, 96, 96, 72, 104, 68, 76, 124, 80, 96, 112, 80, 144, 130, 84, 84, 128, 104, 88, 120, 96, 100, 156, 112, 96, 128, 96, 120, 96, 116, 114, 156, 124]]
[9, [1, 2, 0, 2, 6, 0, 0, 4, 0, 4, 4, 0, 10, 16, 0, 0, 14, 0, 4, 4, 0, 16, 8, 0, 0, 14, 0, 2, 20, 0, 8, 4, 0, 0, 4, 0, 12, 32, 0, 8, 20, 0, 0, 12, 0, 16, 8, 0, 26, 14, 0, 0, 32, 0, 0, 8, 0, 24, 12, 0, 0, 32, 0, 8, 30, 0, 8, 12, 0, 0, 8, 0, 20, 24, 0, 10, 20, 0, 0, 12, 0, 4, 12, 0, 32, 48, 0, 0, 40, 0, 8, 8, 0, 48, 8, 0, 0, 24, 0, 8, 42]]
[10, [1, 2, 2, 4, 2, 2, 8, 4, 10, 10, 2, 16, 8, 12, 16, 4, 26, 20, 26, 24, 2, 32, 24, 28, 40, 2, 28, 40, 16, 28, 8, 24, 58, 48, 36, 4, 26, 44, 40, 56, 10, 36, 64, 36, 24, 10, 48, 52, 104, 66, 2, 72, 28, 60, 80, 16, 80, 80, 60, 56, 8, 60, 64, 116, 122, 12, 96, 76, 36, 96, 16, 72, 130, 68, 76, 4, 40, 80, 112, 80, 26, 130, 84, 68, 64, 20, 88, 120, 120, 84, 26, 120, 48, 128, 96, 24, 232, 84, 114, 144, 2]]
[11, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 4, 0, 0, 4, 2, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 4, 4, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 2, 6]]
[12, [1, 2, 2, 6, 8, 8, 18, 20, 18, 34, 40, 32, 56, 68, 44, 88, 108, 64, 122, 156, 96, 172, 232, 128, 234, 322, 180, 294, 400, 216, 344, 516, 234, 400, 608, 288, 488, 708, 364, 524, 864, 432, 620, 988, 480, 728, 1072, 576, 756, 1174, 594, 896, 1360, 680, 1050, 1424, 900, 1188, 1656, 896, 1248, 1892, 940, 1540, 1836, 1040, 1688, 2124, 1152, 1696, 2448, 1216, 2178, 2660, 1364, 2182, 2896, 1488, 2260, 3268, 1296, 2578, 3312, 1696, 2800, 3520, 1932, 2760, 4320, 1968, 3016, 4264, 2112, 3516, 4320, 2176, 3042, 4660, 2438, 3632, 4808]]
[13, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 4, 0, 2, 4, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 4, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2]]
[14, [1, 2, 2, 4, 2, 0, 4, 2, 6, 10, 8, 8, 4, 8, 2, 8, 18, 12, 18, 12, 8, 4, 16, 24, 28, 30, 16, 24, 2, 20, 32, 24, 38, 32, 28, 0, 18, 20, 28, 40, 40, 28, 4, 40, 16, 48, 32, 24, 68, 2, 38, 40, 16, 28, 56, 48, 6, 48, 36, 44, 32, 48, 40, 10, 82, 56, 64, 32, 28, 80, 8, 48, 86, 36, 52, 108, 28, 8, 80, 48, 104, 66, 60, 60, 4, 80, 64, 88, 80, 68, 104, 8, 32, 96, 56, 88, 156, 60, 2, 104, 38]]
[15, [1, 2, 0, 2, 6, 2, 4, 4, 4, 14, 0, 0, 14, 4, 4, 2, 10, 12, 12, 16, 6, 28, 8, 12, 48, 2, 8, 38, 20, 12, 4, 16, 40, 48, 8, 4, 66, 4, 8, 52, 4, 36, 28, 28, 16, 14, 12, 36, 106, 18, 0, 60, 28, 12, 40, 0, 52, 64, 16, 24, 14, 28, 16, 100, 62, 4, 40, 52, 52, 84, 4, 24, 160, 52, 24, 2, 64, 48, 48, 40, 10, 122, 16, 60, 140, 12, 20, 108, 88, 36, 12, 56, 60, 112, 20, 16, 204, 52, 32, 144, 6]]
[16, [1, 2, 2, 4, 4, 4, 8, 8, 8, 10, 12, 12, 16, 20, 16, 24, 26, 24, 30, 28, 32, 40, 40, 40, 48, 50, 52, 64, 64, 60, 80, 80, 72, 88, 88, 88, 100, 100, 88, 104, 112, 112, 120, 124, 112, 124, 144, 112, 144, 146, 134, 168, 160, 140, 160, 184, 160, 184, 188, 148, 192, 220, 160, 200, 218, 176, 224, 220, 192, 240, 272, 232, 248, 248, 220, 268, 304, 240, 272, 336, 240, 314, 328, 260, 320, 360, 328, 312, 368, 296, 364, 440, 320, 360, 416, 344, 432, 472, 354, 420, 484]]
[17, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 4, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 6, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 0, 2]]
[18, [1, 2, 2, 6, 6, 4, 14, 8, 6, 28, 16, 20, 54, 24, 24, 72, 22, 32, 104, 44, 72, 152, 60, 56, 158, 58, 80, 234, 112, 148, 304, 136, 86, 308, 140, 168, 512, 224, 252, 560, 224, 152, 560, 220, 316, 856, 320, 376, 718, 322, 242, 764, 384, 444, 1170, 480, 448, 900, 464, 332, 1184, 560, 584, 1672, 550, 576, 1276, 556, 580, 1712, 672, 776, 1960, 572, 768, 1446, 748, 832, 1968, 952, 800, 2240, 844, 884, 2224, 1032, 956, 2696, 1020, 944, 3056, 880, 1232, 3048, 1184, 1328, 2846, 1180, 1266, 3440, 1318]]
[19, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 0, 0, 4, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 2, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6]]
[20, [1, 2, 2, 4, 4, 6, 12, 12, 14, 14, 18, 24, 28, 32, 20, 36, 44, 48, 62, 40, 60, 80, 96, 92, 72, 98, 104, 152, 140, 84, 132, 160, 198, 208, 144, 172, 236, 304, 288, 208, 262, 284, 400, 404, 224, 330, 356, 460, 508, 318, 394, 416, 624, 608, 424, 520, 456, 752, 724, 472, 588, 508, 768, 884, 572, 640, 640, 916, 1024, 752, 860, 656, 1114, 1168, 744, 1044, 672, 1104, 1344, 832, 1044, 866, 1324, 1364, 1168, 1328, 860, 1640, 1584, 1092, 1518, 1072, 1484, 1792, 1172, 1464, 1304, 1776, 1902, 1448, 1908]]
[21, [1, 2, 0, 2, 6, 0, 0, 6, 4, 2, 4, 12, 6, 4, 8, 0, 10, 0, 0, 16, 8, 6, 4, 12, 4, 14, 8, 2, 34, 12, 4, 16, 40, 12, 12, 48, 6, 28, 8, 4, 44, 24, 8, 16, 44, 0, 12, 24, 10, 58, 16, 0, 28, 36, 0, 24, 100, 16, 16, 48, 8, 28, 16, 6, 62, 48, 4, 40, 24, 12, 44, 36, 4, 28, 16, 14, 64, 84, 8, 16, 96, 2, 20, 24, 34, 72, 24, 12, 68, 24, 4, 108, 60, 16, 24, 48, 40, 76, 56, 12, 74]]
[22, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 6, 8, 4, 8, 4, 2, 12, 6, 8, 12, 0, 14, 12, 8, 10, 4, 12, 16, 12, 12, 12, 2, 28, 20, 16, 26, 8, 24, 24, 12, 20, 24, 8, 46, 28, 12, 24, 8, 34, 26, 32, 28, 12, 20, 48, 16, 24, 20, 12, 48, 12, 28, 16, 2, 32, 60, 28, 36, 44, 24, 36, 26, 20, 24, 32, 40, 64, 32, 24, 12, 34, 28, 40, 64, 24, 16, 48, 46, 16, 60, 16, 48, 44, 32, 24, 8, 40, 34, 98, 62]]
[23, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 4, 2, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 2]]
[24, [1, 2, 2, 6, 8, 8, 18, 20, 20, 38, 44, 44, 72, 84, 80, 128, 144, 132, 202, 220, 208, 308, 320, 304, 452, 454, 428, 618, 608, 576, 844, 812, 744, 1124, 1060, 976, 1448, 1324, 1248, 1852, 1656, 1564, 2320, 2068, 1984, 2896, 2528, 2408, 3600, 3066, 2926, 4396, 3696, 3600, 5274, 4376, 4288, 6276, 5148, 5052, 7376, 5996, 5904, 8612, 6840, 6816, 10048, 7748, 7760, 11456, 8832, 8944, 12980, 9940, 10140, 14786, 11200, 11312, 16652, 12556, 12960, 18674, 13716, 14468, 20960, 15360, 16096, 23160, 17136, 18060, 25628, 18744, 19648, 28476, 20640, 21720, 30984, 22540, 24178, 33844, 24504]]
[25, [1, 2, 0, 0, 2, 2, 4, 0, 0, 6, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 2, 8, 0, 0, 4, 4, 4, 0, 0, 8, 8, 8, 0, 0, 12, 0, 6, 0, 0, 8, 0, 8, 0, 0, 0, 10, 20, 0, 0, 14, 4, 0, 0, 0, 16, 8, 4, 0, 0, 0, 0, 16, 0, 0, 2, 0, 8, 0, 0, 8, 16, 8, 0, 0, 12, 0, 0, 0, 0, 16, 2, 18, 0, 0, 8, 0, 12, 0, 0, 8, 0, 0, 0, 0, 20, 8, 4, 0, 0, 0, 4]]
[26, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 2, 4, 4, 10, 8, 6, 12, 0, 4, 16, 0, 12, 10, 2, 12, 4, 12, 12, 12, 18, 8, 8, 20, 6, 16, 16, 4, 24, 12, 20, 20, 16, 28, 16, 16, 36, 14, 26, 36, 2, 20, 20, 16, 28, 40, 28, 20, 12, 36, 16, 28, 42, 0, 40, 28, 8, 16, 36, 16, 46, 20, 16, 32, 16, 40, 4, 40, 48, 34, 28, 36, 20, 36, 28, 40, 32, 36, 60, 0, 16, 48, 36, 32, 76, 20, 30, 28, 26]]
[27, [1, 2, 0, 2, 6, 0, 0, 4, 0, 4, 4, 0, 10, 16, 0, 0, 14, 0, 4, 4, 0, 16, 8, 0, 0, 14, 0, 4, 24, 0, 12, 16, 0, 0, 12, 0, 20, 40, 0, 28, 52, 0, 0, 40, 0, 24, 16, 0, 58, 30, 0, 0, 60, 0, 4, 48, 0, 40, 20, 0, 0, 40, 0, 32, 94, 0, 24, 52, 0, 0, 32, 0, 52, 40, 0, 62, 48, 0, 0, 76, 0, 4, 28, 0, 80, 72, 0, 0, 104, 0, 24, 68, 0, 64, 32, 0, 0, 40, 0, 48, 90]]
[28, [1, 2, 2, 4, 4, 4, 8, 10, 10, 10, 16, 12, 16, 28, 18, 24, 28, 32, 26, 36, 48, 28, 60, 52, 56, 58, 64, 88, 68, 100, 72, 96, 86, 104, 144, 92, 132, 116, 152, 120, 168, 184, 136, 220, 168, 228, 172, 240, 280, 234, 282, 208, 336, 212, 352, 408, 266, 360, 324, 444, 288, 492, 464, 338, 512, 392, 528, 380, 576, 568, 512, 556, 426, 680, 452, 724, 720, 604, 600, 588, 840, 506, 896, 756, 688, 720, 684, 968, 612, 1016, 896, 932, 840, 784, 1136, 712, 1176, 1168, 994, 844, 964]]
[29, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2]]
[30, [1, 2, 2, 6, 6, 6, 18, 12, 18, 38, 22, 48, 62, 36, 80, 82, 78, 132, 122, 136, 178, 196, 208, 212, 298, 290, 340, 474, 312, 428, 582, 424, 642, 688, 572, 868, 934, 772, 872, 1068, 1078, 1292, 1568, 1124, 1344, 1906, 1400, 1676, 2038, 1658, 2386, 2860, 1996, 2068, 2922, 2672, 3160, 3992, 2676, 3416, 4826, 3284, 3744, 4516, 3902, 5484, 6544, 4748, 4404, 6460, 6000, 6072, 8450, 5924, 6772, 10598, 6648, 6976, 9076, 7088, 10378, 12674, 8900, 8612, 12024, 10828, 10640, 14436, 10784, 11796, 18878, 12344, 11264, 15416, 12072, 16248, 21210, 14916, 13826, 21040, 17638]]
[31, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2]]
[32, [1, 2, 2, 4, 4, 4, 8, 8, 8, 10, 12, 12, 16, 20, 16, 24, 26, 24, 30, 28, 32, 40, 40, 40, 48, 50, 52, 64, 64, 60, 80, 80, 74, 92, 92, 96, 108, 108, 104, 120, 128, 132, 144, 148, 144, 164, 176, 160, 196, 194, 194, 224, 224, 220, 240, 264, 256, 284, 292, 276, 320, 340, 320, 360, 362, 352, 400, 396, 392, 440, 448, 440, 472, 472, 460, 516, 528, 488, 560, 560, 528, 606, 596, 596, 640, 640, 648, 680, 688, 664, 740, 736, 704, 800, 736, 744, 868, 824, 802, 860, 868]]
[33, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 2, 10, 4, 4, 12, 6, 0, 8, 4, 4, 4, 0, 12, 8, 2, 0, 14, 12, 0, 8, 4, 8, 2, 4, 0, 14, 16, 4, 28, 8, 0, 12, 4, 6, 24, 8, 24, 50, 18, 8, 24, 20, 12, 16, 0, 36, 28, 4, 12, 52, 28, 0, 52, 14, 24, 0, 4, 8, 24, 8, 12, 88, 4, 8, 38, 20, 4, 16, 4, 44, 62, 12, 24, 36, 24, 12, 48, 0, 24, 32, 8, 40, 64, 8, 24, 96, 16, 16, 2, 18]]
[34, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 6, 10, 8, 8, 4, 4, 8, 4, 6, 12, 8, 8, 8, 0, 0, 2, 12, 14, 16, 18, 8, 8, 8, 8, 12, 8, 16, 20, 8, 8, 0, 4, 6, 22, 28, 20, 28, 24, 16, 8, 24, 16, 16, 32, 24, 16, 16, 2, 8, 16, 32, 46, 28, 32, 24, 18, 20, 24, 28, 24, 20, 40, 8, 8, 14, 12, 32, 48, 48, 16, 32, 20, 32, 16, 16, 32, 20, 16, 32, 4, 4, 26, 36, 38]]
[35, [1, 2, 0, 0, 2, 2, 4, 2, 4, 6, 0, 4, 4, 8, 4, 0, 14, 0, 0, 0, 2, 16, 0, 4, 4, 2, 0, 4, 18, 8, 4, 8, 8, 4, 8, 2, 18, 20, 0, 4, 4, 12, 12, 20, 16, 6, 12, 8, 28, 30, 0, 28, 20, 12, 8, 4, 48, 8, 16, 8, 4, 20, 8, 46, 34, 8, 16, 20, 20, 40, 4, 32, 52, 12, 8, 0, 24, 44, 24, 12, 14, 18, 16, 28, 76, 0, 4, 52, 48, 28, 0, 48, 28, 32, 4, 0, 52, 16, 28, 48, 2]]
[36, [1, 2, 2, 6, 8, 8, 18, 20, 18, 36, 44, 36, 68, 84, 60, 124, 148, 100, 192, 240, 164, 296, 384, 232, 446, 578, 344, 610, 800, 480, 824, 1148, 610, 1116, 1548, 848, 1460, 1988, 1124, 1804, 2664, 1364, 2312, 3360, 1744, 2920, 4080, 2256, 3428, 5166, 2646, 4296, 6352, 3264, 5290, 7384, 4172, 6084, 9060, 4636, 7312, 10900, 5532, 8992, 12220, 6968, 10232, 14840, 7724, 11848, 17648, 8904, 14652, 19480, 10904, 16290, 23120, 12048, 18496, 27332, 13460, 22616, 29820, 16564, 24912, 34776, 18108, 27436, 40920, 19628, 33000, 43592, 23720, 36368, 49872, 26008, 38678, 58144, 28062, 46392, 61544]]
[37, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]]
[38, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 6, 4, 4, 12, 4, 4, 10, 0, 12, 12, 0, 8, 8, 2, 8, 4, 4, 14, 12, 14, 4, 4, 20, 4, 12, 16, 0, 20, 12, 4, 10, 10, 12, 16, 8, 12, 20, 12, 28, 8, 12, 32, 8, 16, 28, 2, 24, 32, 12, 24, 20, 20, 16, 14, 28, 28, 28, 46, 4, 12, 32, 4, 34, 28, 8, 36, 28, 20, 20, 16, 28, 32, 28, 28, 32, 20, 48, 4, 12, 26, 12, 46]]
[39, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 0, 6, 6, 4, 0, 10, 12, 0, 4, 8, 4, 4, 0, 0, 14, 8, 2, 12, 12, 0, 4, 8, 0, 8, 0, 6, 4, 4, 6, 8, 24, 4, 16, 8, 0, 8, 0, 10, 18, 8, 12, 34, 12, 0, 24, 44, 4, 8, 24, 8, 28, 12, 4, 46, 48, 4, 28, 36, 0, 16, 24, 0, 28, 8, 14, 28, 24, 8, 16, 80, 2, 8, 24, 12, 0, 8, 12, 52, 48, 0, 60, 16, 4, 12, 48, 8, 28, 16, 0, 58]]
[40, [1, 2, 2, 4, 4, 6, 12, 12, 16, 18, 22, 32, 36, 44, 44, 60, 72, 76, 98, 88, 116, 144, 136, 164, 160, 194, 228, 232, 260, 244, 324, 344, 344, 408, 356, 484, 524, 484, 576, 552, 688, 732, 728, 804, 760, 1014, 996, 972, 1152, 1018, 1362, 1368, 1264, 1516, 1416, 1744, 1760, 1736, 1916, 1784, 2348, 2180, 2152, 2572, 2200, 2948, 2832, 2668, 3192, 2864, 3620, 3528, 3472, 3836, 3540, 4660, 4224, 4248, 4952, 4192, 5688, 5322, 5084, 5924, 5320, 6820, 6380, 6312, 6912, 6388, 8374, 7432, 7500, 8480, 7276, 9944, 8992, 8604, 9866, 8944, 11436]]
[41, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]]
[42, [1, 2, 2, 6, 6, 4, 14, 10, 10, 30, 24, 28, 50, 40, 34, 60, 62, 56, 94, 108, 88, 110, 136, 92, 142, 198, 168, 258, 246, 220, 296, 272, 298, 444, 420, 404, 578, 444, 420, 592, 616, 608, 782, 880, 592, 812, 888, 768, 1114, 1178, 1094, 1360, 1248, 1036, 1658, 1328, 1466, 2252, 1588, 1588, 2072, 1864, 1704, 2534, 2526, 1968, 2728, 2656, 2244, 2860, 3192, 2780, 3838, 3500, 2820, 4514, 3204, 3644, 5576, 3824, 3912, 5754, 4532, 4172, 6466, 5224, 4768, 6580, 6208, 5528, 6728, 7352, 6192, 8368, 7384, 6376, 9870, 7460, 8210, 11948, 7746]]
[43, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2]]
[44, [1, 2, 2, 4, 4, 4, 8, 8, 6, 6, 8, 6, 12, 16, 8, 16, 20, 24, 26, 24, 20, 24, 34, 28, 36, 22, 32, 48, 48, 40, 36, 44, 38, 76, 56, 56, 56, 68, 96, 88, 84, 56, 88, 80, 108, 108, 88, 84, 128, 162, 122, 136, 112, 132, 148, 188, 144, 120, 152, 180, 228, 184, 152, 160, 188, 200, 264, 212, 176, 232, 296, 316, 282, 264, 232, 276, 304, 328, 312, 256, 304, 442, 440, 384, 368, 360, 376, 448, 510, 356, 356, 448, 524, 584, 492, 392, 428, 516, 514, 642, 504]]
[45, [1, 2, 0, 2, 6, 2, 4, 4, 4, 16, 4, 0, 18, 16, 8, 10, 18, 20, 40, 16, 6, 56, 16, 20, 52, 22, 32, 62, 52, 24, 60, 32, 64, 144, 12, 20, 144, 48, 32, 64, 48, 120, 132, 52, 32, 176, 24, 52, 242, 46, 84, 128, 112, 76, 124, 64, 136, 368, 100, 64, 250, 124, 96, 336, 134, 144, 288, 148, 220, 312, 120, 128, 616, 288, 96, 306, 240, 352, 560, 128, 130, 760, 244, 244, 488, 284, 360, 596, 336, 152, 712, 128, 388, 1024, 152, 272, 692, 512, 296, 576, 386]]
[46, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 2, 8, 6, 8, 12, 0, 8, 0, 4, 14, 8, 12, 8, 6, 0, 4, 4, 8, 16, 8, 4, 4, 8, 2, 12, 12, 10, 22, 8, 8, 0, 12, 16, 16, 24, 8, 16, 0, 8, 4, 8, 22, 8, 16, 12, 12, 4, 16, 20, 26, 32, 16, 20, 4, 24, 28, 16, 40, 26, 24, 4, 8, 8, 20, 36, 20, 28, 16, 24, 2, 20, 20, 24, 52, 20, 18, 20, 22]]
[47, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 2, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2]]
[48, [1, 2, 2, 6, 8, 8, 18, 20, 20, 38, 44, 44, 72, 84, 80, 128, 146, 136, 206, 232, 224, 324, 356, 344, 492, 530, 516, 706, 752, 744, 1004, 1068, 1032, 1388, 1464, 1416, 1864, 1940, 1888, 2460, 2560, 2472, 3176, 3304, 3200, 4048, 4216, 4032, 5090, 5318, 5050, 6360, 6608, 6264, 7806, 8120, 7640, 9480, 9876, 9276, 11488, 11956, 11120, 13684, 14334, 13224, 16316, 17016, 15616, 19320, 20128, 18424, 22580, 23628, 21556, 26390, 27600, 24960, 30628, 32172, 28992, 35346, 37144, 33236, 40624, 42768, 38176, 46576, 49120, 43792, 53116, 56160, 49664, 60348, 64064, 56520, 68568, 72764, 63822, 77428, 82504]]
[49, [1, 2, 0, 0, 2, 0, 0, 2, 4, 2, 0, 4, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 2, 4, 0, 0, 8, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 8, 0, 0, 8, 8, 4, 0, 8, 0, 0, 2, 10, 12, 0, 4, 0, 0, 0, 4, 12, 0, 4, 0, 0, 8, 8, 4, 0, 18, 0, 0, 0, 4, 8, 0, 8, 0, 0, 0, 12, 8, 0, 0, 0, 0, 4, 4, 2]]
[50, [1, 2, 2, 4, 2, 2, 8, 4, 10, 10, 2, 16, 8, 12, 16, 4, 26, 20, 26, 24, 2, 32, 24, 28, 40, 4, 32, 44, 24, 32, 12, 40, 66, 68, 56, 8, 58, 60, 64, 88, 18, 88, 104, 88, 72, 14, 112, 100, 160, 146, 8, 132, 112, 100, 140, 36, 144, 204, 176, 148, 20, 144, 168, 220, 266, 40, 220, 244, 160, 192, 40, 232, 282, 332, 288, 16, 248, 224, 280, 304, 82, 370, 376, 324, 288, 52, 324, 368, 480, 504, 86, 488, 408, 376, 432, 84, 600, 544, 570, 588, 24]]
[51, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 0, 6, 4, 0, 0, 6, 2, 4, 4, 4, 16, 0, 0, 8, 2, 4, 2, 12, 12, 8, 4, 0, 12, 0, 0, 14, 4, 8, 4, 0, 0, 4, 4, 4, 24, 0, 0, 14, 6, 0, 2, 16, 12, 12, 12, 8, 4, 8, 0, 12, 4, 0, 16, 14, 12, 12, 16, 6, 36, 8, 12, 44, 4, 8, 26, 16, 12, 12, 28, 44, 38, 8, 0, 56, 0, 0, 36, 8, 24, 16, 8, 4, 40, 8, 12, 80, 4, 4, 36, 18]]
[52, [1, 2, 2, 4, 4, 4, 8, 8, 6, 6, 8, 4, 8, 14, 4, 12, 20, 16, 18, 28, 24, 20, 36, 24, 16, 30, 34, 20, 36, 36, 24, 44, 46, 48, 44, 68, 44, 44, 68, 52, 64, 64, 64, 52, 76, 88, 80, 88, 112, 90, 82, 116, 108, 100, 120, 128, 88, 120, 156, 108, 136, 204, 124, 132, 164, 156, 160, 212, 176, 104, 216, 200, 182, 216, 248, 168, 220, 240, 184, 248, 288, 258, 208, 316, 296, 268, 328, 352, 280, 296, 328, 304, 304, 432, 372, 280, 416, 448, 366, 436, 540]]
[53, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]]
[54, [1, 2, 2, 6, 6, 4, 14, 8, 6, 28, 16, 20, 54, 24, 24, 72, 22, 32, 104, 44, 72, 152, 60, 56, 158, 58, 80, 236, 116, 152, 316, 148, 94, 336, 156, 180, 568, 256, 292, 668, 272, 200, 704, 264, 380, 1064, 408, 520, 1022, 442, 354, 1080, 500, 604, 1640, 708, 748, 1520, 748, 512, 1828, 856, 932, 2752, 1030, 1120, 2504, 1052, 932, 2976, 1156, 1472, 3880, 1300, 1664, 3186, 1512, 1428, 3812, 1836, 1848, 5052, 2036, 2084, 4656, 2256, 1808, 5736, 2452, 2472, 7536, 2492, 2968, 6936, 2840, 2888, 7678, 3052, 3578, 9488, 3278]]
[55, [1, 2, 0, 0, 2, 2, 4, 0, 0, 6, 0, 2, 4, 0, 4, 4, 6, 8, 0, 0, 14, 8, 0, 0, 4, 10, 0, 4, 0, 4, 4, 4, 16, 0, 0, 8, 10, 0, 0, 0, 8, 12, 0, 0, 2, 10, 4, 12, 4, 10, 8, 0, 8, 12, 8, 2, 20, 8, 8, 4, 20, 12, 0, 0, 18, 32, 4, 16, 8, 20, 12, 12, 24, 8, 8, 32, 16, 0, 0, 8, 50, 18, 8, 0, 16, 16, 12, 32, 0, 16, 24, 24, 20, 12, 4, 32, 28, 8, 16, 6, 42]]
[56, [1, 2, 2, 4, 4, 4, 8, 10, 12, 14, 20, 20, 24, 36, 34, 44, 48, 52, 58, 60, 80, 84, 96, 100, 112, 122, 116, 160, 164, 156, 192, 200, 200, 224, 276, 276, 276, 324, 312, 332, 360, 412, 456, 428, 464, 516, 512, 528, 672, 666, 606, 720, 768, 724, 816, 992, 940, 948, 1020, 1044, 1104, 1124, 1328, 1366, 1240, 1348, 1504, 1492, 1464, 1856, 1812, 1560, 1884, 1940, 1900, 2052, 2376, 2372, 2176, 2400, 2496, 2598, 2628, 2964, 3160, 2720, 3008, 3408, 3280, 3260, 3940, 3956, 3440, 3912, 4176, 4092, 4256, 4924, 4882, 4500, 4860]]
[57, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 0, 6, 4, 0, 0, 6, 0, 0, 6, 4, 4, 4, 12, 0, 2, 8, 2, 16, 0, 0, 16, 8, 0, 0, 12, 6, 4, 8, 4, 8, 0, 0, 4, 4, 0, 4, 24, 6, 6, 8, 0, 12, 0, 0, 12, 8, 6, 12, 0, 4, 16, 8, 4, 14, 0, 4, 16, 12, 12, 8, 24, 0, 16, 0, 2, 34, 12, 8, 16, 44, 2, 12, 36, 16, 36, 8, 0, 44, 24, 0, 8, 44, 16, 12, 48, 8, 28, 8, 0, 18]]
[58, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 0, 4, 2, 0, 8, 0, 2, 4, 4, 10, 12, 4, 8, 6, 4, 16, 0, 8, 12, 0, 4, 4, 4, 8, 12, 12, 2, 2, 16, 0, 8, 12, 0, 16, 8, 2, 8, 4, 12, 20, 8, 10, 12, 12, 24, 4, 8, 16, 0, 14, 12, 4, 12, 16, 16, 4, 4, 24, 10, 12, 24, 0, 16, 20, 4, 20, 12, 20, 24, 8, 20, 12, 24, 44, 12, 18, 36, 2]]
[59, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2]]
[60, [1, 2, 2, 6, 8, 10, 22, 24, 30, 50, 58, 72, 100, 116, 128, 190, 220, 228, 330, 360, 408, 576, 608, 664, 902, 1002, 1092, 1398, 1500, 1596, 2110, 2304, 2314, 2984, 3212, 3384, 4396, 4516, 4696, 5948, 6430, 6732, 8080, 8608, 8776, 11002, 11800, 11544, 14168, 15002, 15354, 18924, 19448, 19572, 23694, 25320, 25956, 30168, 31748, 31768, 38132, 40900, 39552, 46848, 48880, 49124, 59360, 60320, 60152, 70224, 74080, 75904, 86362, 89652, 88484, 104094, 110584, 107216, 124204, 126864, 126764, 151786, 152196, 151024, 173668, 178868, 184368, 208052, 212480, 208468, 241890, 254480, 246308, 284752, 284360, 281672, 337082, 333300, 331074, 377304, 380600]]
[61, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 2, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2]]
[62, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 0, 4, 2, 0, 8, 0, 0, 0, 2, 6, 12, 12, 4, 6, 8, 4, 4, 12, 4, 8, 12, 4, 0, 0, 4, 12, 14, 10, 8, 0, 8, 8, 8, 4, 8, 16, 4, 0, 0, 2, 8, 22, 16, 12, 16, 12, 8, 4, 12, 14, 12, 16, 12, 4, 0, 4, 16, 16, 22, 20, 4, 8, 16, 12, 4, 20, 20, 8, 0, 0, 4, 12, 28, 28, 28, 22, 36, 10]]
[63, [1, 2, 0, 2, 6, 0, 0, 6, 4, 4, 8, 12, 10, 16, 8, 0, 22, 8, 4, 24, 32, 18, 12, 28, 4, 34, 8, 2, 66, 28, 16, 24, 64, 20, 40, 64, 12, 100, 32, 16, 88, 104, 32, 52, 148, 16, 76, 64, 30, 154, 80, 16, 80, 124, 0, 80, 164, 48, 140, 104, 16, 112, 104, 12, 182, 272, 48, 116, 200, 52, 136, 172, 36, 224, 152, 50, 264, 196, 48, 180, 272, 20, 152, 168, 122, 352, 280, 36, 236, 312, 16, 336, 388, 160, 256, 336, 120, 368, 264, 56, 646]]
[64, [1, 2, 2, 4, 4, 4, 8, 8, 8, 10, 12, 12, 16, 20, 16, 24, 26, 24, 30, 28, 32, 40, 40, 40, 48, 50, 52, 64, 64, 60, 80, 80, 74, 92, 92, 96, 108, 108, 104, 120, 128, 132, 144, 148, 144, 164, 176, 160, 196, 194, 194, 224, 224, 220, 240, 264, 256, 284, 292, 276, 320, 340, 320, 360, 364, 356, 404, 404, 400, 448, 464, 456, 488, 492, 484, 540, 560, 528, 592, 608, 580, 654, 656, 652, 704, 720, 728, 760, 784, 764, 844, 864, 832, 920, 896, 904, 1016, 1008, 986, 1052, 1084]]
[65, [1, 2, 0, 0, 2, 2, 4, 0, 0, 6, 0, 0, 0, 2, 8, 0, 2, 4, 4, 8, 2, 8, 12, 0, 4, 2, 0, 8, 0, 8, 4, 0, 0, 4, 16, 0, 6, 8, 4, 0, 0, 4, 8, 8, 0, 6, 4, 0, 0, 18, 0, 0, 2, 4, 16, 0, 8, 4, 20, 8, 0, 16, 12, 0, 2, 2, 12, 16, 4, 20, 8, 8, 4, 16, 20, 0, 8, 8, 4, 16, 2, 22, 32, 16, 24, 4, 20, 24, 12, 12, 4, 0, 16, 12, 40, 8, 4, 28, 16, 40, 2]]
[66, [1, 2, 2, 6, 6, 4, 14, 8, 6, 26, 12, 18, 46, 16, 28, 56, 14, 48, 66, 28, 88, 80, 58, 104, 70, 74, 128, 98, 116, 152, 128, 164, 142, 166, 164, 168, 278, 224, 232, 320, 256, 272, 420, 244, 382, 516, 312, 540, 486, 346, 562, 616, 456, 728, 674, 612, 772, 668, 756, 692, 952, 848, 932, 1064, 894, 920, 1142, 964, 1108, 1620, 1000, 1472, 1558, 1204, 1512, 1754, 1328, 1800, 2192, 1504, 2088, 1854, 1716, 2056, 2500, 1984, 2392, 2760, 2206, 2496, 2700, 2368, 2412, 3680, 2604, 3192, 3590, 2512, 3034, 3754, 2946]]
[67, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2]]
[68, [1, 2, 2, 4, 4, 4, 8, 8, 6, 6, 8, 4, 8, 12, 0, 8, 12, 10, 14, 16, 16, 16, 32, 24, 24, 26, 20, 32, 24, 20, 24, 16, 22, 40, 34, 32, 40, 44, 48, 64, 56, 40, 56, 48, 56, 60, 24, 40, 56, 46, 66, 60, 68, 68, 104, 104, 80, 112, 88, 96, 96, 100, 88, 64, 92, 88, 96, 128, 100, 128, 152, 160, 174, 160, 152, 148, 160, 144, 152, 136, 120, 122, 160, 144, 204, 172, 184, 248, 232, 268, 232, 232, 200, 240, 200, 176, 200, 184, 190, 260, 228]]
[69, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 0, 6, 4, 0, 0, 6, 0, 0, 4, 0, 4, 0, 2, 4, 2, 4, 14, 12, 0, 8, 4, 4, 0, 0, 12, 14, 4, 0, 16, 0, 0, 8, 4, 8, 0, 0, 0, 10, 6, 4, 24, 12, 0, 8, 0, 0, 4, 0, 12, 8, 4, 8, 4, 6, 0, 8, 4, 0, 2, 4, 12, 16, 16, 0, 26, 20, 0, 4, 4, 8, 14, 8, 0, 20, 12, 8, 12, 8, 0, 16, 8, 6, 16, 4, 12, 48, 28, 4, 48, 14]]
[70, [1, 2, 2, 4, 2, 2, 8, 6, 14, 14, 10, 20, 12, 28, 26, 28, 50, 32, 62, 44, 42, 76, 60, 108, 100, 94, 100, 100, 130, 128, 160, 160, 182, 188, 184, 174, 170, 244, 260, 316, 278, 236, 280, 284, 328, 374, 384, 360, 500, 398, 382, 436, 376, 692, 572, 652, 606, 456, 768, 628, 860, 760, 744, 1074, 866, 924, 892, 932, 1060, 1344, 1266, 1072, 1238, 1164, 1588, 1460, 1308, 1524, 1548, 1772, 1738, 1706, 1508, 1840, 2124, 2136, 1776, 1844, 2504, 2092, 2782, 2212, 1920, 2896, 2332, 3380, 2732, 2320, 3386, 3008, 3310]]
[71, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2]]
[72, [1, 2, 2, 6, 8, 8, 18, 20, 20, 40, 48, 48, 84, 100, 96, 164, 184, 172, 280, 312, 300, 464, 504, 480, 744, 782, 732, 1102, 1144, 1088, 1628, 1652, 1544, 2356, 2336, 2176, 3244, 3164, 3000, 4468, 4288, 4012, 6056, 5752, 5400, 7992, 7456, 7072, 10536, 9650, 9110, 13676, 12424, 11840, 17402, 15584, 14928, 22124, 19520, 18608, 27768, 24316, 23376, 34336, 29624, 28704, 42440, 36064, 34868, 51752, 43856, 42720, 62528, 52340, 51308, 75706, 62424, 61008, 90460, 74452, 73536, 107204, 87184, 86800, 127392, 102544, 101512, 149556, 120416, 120308, 174600, 138712, 139632, 204488, 160848, 161280, 236184, 186356, 188674, 272096, 212480]]
[73, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2]]
[74, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 0, 4, 2, 0, 8, 0, 0, 0, 0, 2, 8, 4, 0, 6, 2, 8, 4, 8, 8, 0, 12, 4, 4, 12, 0, 12, 10, 2, 8, 0, 4, 16, 12, 8, 8, 0, 12, 0, 8, 4, 0, 18, 0, 8, 4, 4, 4, 16, 8, 6, 16, 2, 16, 8, 8, 12, 0, 16, 18, 8, 16, 0, 16, 16, 4, 20, 4, 4, 24, 12, 8, 16, 0, 20, 4, 10, 16, 2]]
[75, [1, 2, 0, 2, 6, 2, 4, 4, 4, 14, 0, 0, 14, 4, 4, 2, 10, 12, 12, 16, 6, 28, 8, 12, 48, 4, 12, 38, 24, 24, 8, 24, 48, 56, 36, 4, 66, 32, 16, 60, 8, 56, 52, 52, 48, 26, 68, 52, 130, 114, 4, 76, 104, 52, 64, 8, 84, 144, 112, 40, 22, 160, 24, 116, 166, 12, 112, 108, 108, 116, 32, 48, 232, 264, 60, 4, 188, 104, 76, 132, 14, 234, 152, 100, 216, 40, 76, 168, 296, 168, 24, 156, 188, 240, 220, 36, 308, 388, 160, 288, 20]]
[76, [1, 2, 2, 4, 4, 4, 8, 8, 6, 6, 8, 4, 8, 12, 0, 8, 12, 8, 10, 14, 12, 12, 32, 16, 16, 30, 24, 28, 28, 20, 8, 32, 30, 16, 32, 32, 28, 40, 50, 28, 44, 64, 40, 44, 52, 52, 44, 60, 48, 26, 58, 44, 56, 60, 72, 64, 60, 92, 64, 84, 96, 84, 72, 100, 100, 64, 104, 116, 68, 100, 124, 88, 118, 160, 112, 100, 156, 120, 112, 176, 144, 106, 184, 148, 120, 176, 176, 108, 172, 200, 152, 204, 224, 168, 160, 236, 160, 200, 226, 220, 192]]
[77, [1, 2, 0, 0, 2, 0, 0, 2, 4, 2, 0, 6, 4, 0, 0, 4, 6, 0, 4, 8, 4, 0, 8, 4, 0, 2, 0, 12, 2, 4, 0, 0, 8, 0, 8, 0, 6, 4, 0, 4, 8, 0, 0, 20, 6, 4, 0, 4, 12, 2, 0, 4, 8, 8, 8, 16, 4, 0, 0, 0, 16, 0, 0, 2, 18, 0, 0, 20, 0, 4, 0, 4, 8, 8, 4, 20, 16, 6, 12, 4, 4, 14, 8, 8, 4, 8, 4, 8, 36, 8, 8, 0, 16, 16, 0, 8, 16, 16, 0, 38, 22]]
[78, [1, 2, 2, 6, 6, 4, 14, 8, 6, 26, 12, 16, 42, 14, 20, 48, 18, 32, 58, 44, 52, 68, 76, 40, 74, 114, 54, 114, 140, 60, 136, 148, 66, 168, 160, 148, 206, 160, 184, 186, 236, 232, 232, 292, 276, 276, 328, 268, 342, 454, 330, 516, 418, 388, 602, 432, 468, 692, 548, 584, 792, 540, 632, 760, 766, 700, 916, 1012, 736, 1016, 1084, 684, 1102, 1260, 816, 1490, 1224, 944, 1370, 1288, 1188, 1582, 1488, 1488, 1800, 1556, 1572, 1476, 2068, 1752, 2196, 2072, 1704, 2404, 2128, 1888, 2582, 2540, 2182, 3424, 2094]]
[79, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 2, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2]]
[80, [1, 2, 2, 4, 4, 6, 12, 12, 16, 18, 22, 32, 36, 44, 44, 60, 74, 80, 102, 96, 124, 156, 160, 188, 192, 230, 272, 296, 332, 332, 412, 464, 488, 560, 552, 660, 756, 772, 848, 880, 1008, 1120, 1184, 1268, 1280, 1502, 1644, 1660, 1840, 1834, 2074, 2336, 2312, 2484, 2568, 2848, 3136, 3200, 3372, 3392, 3868, 4208, 4144, 4516, 4506, 4988, 5560, 5412, 5728, 5908, 6476, 7040, 7024, 7344, 7416, 8292, 8992, 8696, 9344, 9456, 10234, 11374, 10948, 11444, 11944, 12848, 13916, 13720, 14208, 14484, 15954, 17280, 16540, 17552, 17916, 19136, 21204, 20224, 20950, 21952, 23372]]
[81, [1, 2, 0, 2, 6, 0, 0, 4, 0, 4, 4, 0, 10, 16, 0, 0, 14, 0, 4, 4, 0, 16, 8, 0, 0, 14, 0, 4, 24, 0, 12, 16, 0, 0, 12, 0, 20, 40, 0, 28, 52, 0, 0, 40, 0, 24, 16, 0, 58, 30, 0, 0, 60, 0, 4, 48, 0, 40, 20, 0, 0, 40, 0, 32, 94, 0, 24, 52, 0, 0, 32, 0, 52, 40, 0, 62, 48, 0, 0, 76, 0, 6, 32, 0, 84, 84, 0, 0, 112, 0, 32, 76, 0, 84, 64, 0, 0, 68, 0, 56, 98]]
[82, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 0, 4, 2, 0, 8, 0, 0, 0, 0, 2, 8, 4, 0, 6, 0, 4, 0, 0, 6, 4, 8, 12, 4, 0, 8, 4, 6, 14, 8, 8, 8, 8, 0, 0, 12, 8, 16, 8, 0, 0, 8, 2, 8, 12, 4, 20, 0, 0, 0, 6, 8, 16, 12, 4, 12, 0, 8, 0, 10, 14, 8, 12, 16, 8, 0, 12, 12, 8, 16, 16, 8, 8, 16, 4, 4, 22, 20, 22]]
[83, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 2]]
[84, [1, 2, 2, 6, 8, 8, 18, 22, 22, 38, 52, 48, 72, 104, 86, 128, 180, 156, 202, 284, 268, 306, 456, 424, 478, 678, 652, 730, 960, 980, 1036, 1400, 1378, 1472, 1940, 1864, 2072, 2588, 2616, 2688, 3472, 3500, 3558, 4672, 4524, 4832, 5896, 6024, 6236, 7498, 7766, 7876, 9864, 9564, 10186, 12152, 12002, 12844, 15092, 15316, 15324, 19040, 18520, 19282, 23288, 22584, 24024, 27560, 28244, 28328, 33788, 33440, 34382, 41444, 39212, 41922, 47800, 47824, 49204, 57672, 57124, 56650, 68932, 65748, 68928, 79272, 78344, 80652, 91660, 92852, 91500, 108840, 104980, 109336, 126256, 121320, 126490, 141612, 143402, 142816, 167800]]
[85, [1, 2, 0, 0, 2, 2, 4, 0, 0, 6, 0, 0, 0, 0, 4, 0, 2, 2, 4, 0, 2, 12, 4, 8, 4, 2, 12, 0, 0, 4, 4, 8, 0, 4, 0, 0, 6, 4, 16, 0, 0, 12, 4, 0, 0, 6, 12, 8, 0, 6, 0, 0, 0, 12, 8, 0, 4, 0, 8, 0, 0, 4, 12, 8, 2, 0, 12, 0, 2, 12, 4, 16, 4, 12, 8, 0, 0, 12, 8, 0, 2, 14, 8, 0, 12, 2, 24, 8, 4, 24, 4, 8, 8, 4, 16, 0, 4, 12, 28, 8, 2]]
[86, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 0, 4, 2, 0, 8, 0, 0, 0, 0, 2, 8, 4, 0, 6, 0, 4, 0, 0, 4, 0, 6, 8, 4, 8, 4, 4, 10, 2, 12, 12, 0, 16, 8, 0, 8, 0, 8, 8, 12, 8, 0, 2, 8, 8, 12, 8, 0, 16, 0, 6, 4, 0, 8, 20, 8, 0, 12, 0, 18, 4, 4, 8, 0, 14, 12, 8, 12, 4, 8, 12, 4, 20, 12, 4, 28, 10, 12, 18]]
[87, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 0, 6, 4, 0, 0, 6, 0, 0, 4, 0, 4, 0, 0, 0, 2, 0, 2, 12, 2, 4, 4, 4, 12, 0, 0, 14, 4, 4, 4, 0, 12, 8, 4, 0, 12, 0, 0, 14, 6, 8, 0, 12, 0, 4, 0, 4, 28, 0, 0, 8, 4, 0, 4, 6, 12, 8, 4, 8, 0, 0, 0, 8, 4, 0, 2, 12, 12, 12, 4, 0, 26, 0, 0, 12, 0, 8, 2, 4, 0, 12, 20, 8, 16, 8, 0, 12, 4, 0, 12, 14]]
[88, [1, 2, 2, 4, 4, 4, 8, 8, 8, 10, 12, 14, 20, 24, 24, 32, 32, 36, 42, 36, 44, 56, 50, 60, 76, 70, 84, 96, 88, 88, 104, 100, 112, 124, 124, 160, 160, 156, 184, 192, 172, 220, 216, 204, 244, 276, 296, 292, 336, 322, 350, 344, 368, 396, 392, 412, 472, 488, 460, 548, 548, 528, 520, 624, 552, 592, 680, 684, 744, 736, 792, 812, 828, 780, 940, 868, 880, 1016, 1096, 1072, 1136, 1306, 1164, 1220, 1224, 1312, 1312, 1368, 1448, 1532, 1596, 1632, 1764, 1728, 1632, 1680, 1912, 1692, 1842, 2086, 2040]]
[89, [1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 2]]
[90, [1, 2, 2, 6, 6, 6, 18, 12, 18, 40, 26, 52, 74, 48, 92, 118, 102, 168, 200, 184, 278, 332, 292, 384, 498, 470, 640, 798, 636, 888, 1122, 936, 1250, 1520, 1356, 1884, 2280, 1760, 2280, 2884, 2498, 3332, 3904, 3184, 4324, 5288, 4160, 5088, 6258, 5578, 7274, 8764, 6728, 8152, 10826, 8596, 10436, 13096, 10380, 13972, 17338, 12644, 15128, 19408, 16214, 20248, 24952, 19304, 23548, 30804, 23452, 26616, 34904, 28036, 35000, 44998, 33000, 38104, 50492, 39784, 46134, 60644, 46864, 55496, 74608, 54440, 61264, 81364, 62972, 76300, 99816, 74752, 84592, 112360, 87456, 96536, 128578, 100204, 113066, 157856, 115814]]
[91, [1, 2, 0, 0, 2, 0, 0, 2, 4, 2, 0, 4, 0, 2, 4, 0, 6, 4, 0, 0, 4, 8, 4, 4, 8, 2, 0, 0, 2, 16, 0, 0, 8, 0, 0, 0, 10, 4, 4, 0, 0, 4, 8, 4, 4, 16, 0, 0, 0, 6, 8, 0, 2, 8, 0, 0, 16, 8, 0, 4, 8, 4, 4, 10, 10, 0, 8, 4, 12, 8, 0, 4, 4, 0, 0, 8, 4, 28, 0, 4, 12, 10, 0, 0, 24, 8, 0, 0, 12, 8, 8, 2, 16, 0, 4, 12, 8, 0, 4, 12, 6]]
[92, [1, 2, 2, 4, 4, 4, 8, 8, 6, 6, 8, 4, 8, 12, 0, 8, 12, 8, 10, 12, 8, 8, 24, 10, 12, 18, 16, 24, 24, 20, 16, 28, 18, 32, 24, 24, 36, 20, 40, 32, 40, 28, 40, 36, 24, 68, 18, 36, 56, 42, 50, 48, 48, 28, 76, 48, 48, 56, 56, 60, 56, 84, 40, 88, 48, 64, 72, 60, 104, 36, 104, 92, 98, 100, 72, 108, 80, 136, 84, 80, 104, 114, 128, 92, 136, 88, 152, 104, 120, 120, 128, 192, 84, 192, 128, 152, 172, 152, 154, 124, 212]]
[93, [1, 2, 0, 2, 6, 0, 0, 4, 0, 2, 0, 0, 6, 4, 0, 0, 6, 0, 0, 4, 0, 4, 0, 0, 0, 2, 0, 2, 12, 0, 0, 6, 4, 0, 4, 12, 6, 4, 8, 4, 4, 0, 0, 16, 8, 0, 0, 12, 6, 6, 8, 0, 20, 0, 0, 0, 4, 4, 4, 24, 0, 4, 8, 4, 6, 0, 0, 16, 8, 0, 8, 0, 0, 4, 8, 2, 12, 0, 0, 16, 12, 2, 0, 24, 12, 0, 0, 0, 8, 0, 0, 8, 8, 6, 12, 12, 4, 16, 8, 0, 14]]
[94, [1, 2, 2, 4, 2, 0, 4, 0, 2, 6, 0, 4, 4, 0, 0, 0, 2, 4, 6, 4, 0, 0, 4, 0, 4, 2, 0, 8, 0, 0, 0, 0, 2, 8, 4, 0, 6, 0, 4, 0, 0, 4, 0, 4, 4, 0, 0, 2, 8, 6, 10, 12, 0, 8, 8, 4, 12, 8, 8, 12, 0, 0, 0, 4, 10, 12, 16, 4, 4, 8, 0, 8, 10, 4, 16, 4, 4, 0, 0, 4, 16, 18, 4, 16, 0, 8, 4, 0, 12, 4, 8, 8, 0, 0, 2, 12, 12, 16, 22, 12, 10]]
[95, [1, 2, 0, 0, 2, 2, 4, 0, 0, 6, 0, 0, 0, 0, 4, 0, 2, 0, 0, 2, 6, 8, 0, 4, 8, 10, 0, 0, 12, 4, 4, 0, 0, 8, 0, 4, 6, 0, 0, 4, 16, 4, 0, 8, 4, 6, 4, 0, 8, 14, 0, 0, 0, 0, 8, 12, 4, 0, 0, 0, 8, 4, 0, 0, 14, 8, 0, 0, 12, 8, 4, 0, 0, 16, 0, 8, 2, 4, 0, 0, 14, 14, 8, 4, 8, 12, 4, 0, 16, 12, 8, 0, 4, 0, 4, 2, 12, 16, 0, 8, 34]]
[96, [1, 2, 2, 6, 8, 8, 18, 20, 20, 38, 44, 44, 72, 84, 80, 128, 146, 136, 206, 232, 224, 324, 356, 344, 492, 530, 516, 706, 752, 744, 1004, 1068, 1034, 1392, 1468, 1428, 1880, 1956, 1924, 2500, 2600, 2548, 3264, 3392, 3344, 4216, 4376, 4288, 5382, 5590, 5462, 6824, 7056, 6912, 8518, 8808, 8624, 10540, 10908, 10688, 12992, 13444, 13128, 15820, 16398, 16000, 19244, 19848, 19344, 23200, 23904, 23344, 27700, 28572, 27908, 32998, 34000, 33056, 39060, 40236, 39172, 45982, 47244, 45956, 53840, 55296, 53788, 62816, 64400, 62752, 72868, 74712, 72640, 84260, 86304, 83888, 97238, 99216, 96458, 111472, 113752]]