Skip to content

Instantly share code, notes, and snippets.

@hellman
Last active May 6, 2026 09:08
Show Gist options
  • Select an option

  • Save hellman/a4a56f013085edf379ac6377db0fa9bb to your computer and use it in GitHub Desktop.

Select an option

Save hellman/a4a56f013085edf379ac6377db0fa9bb to your computer and use it in GitHub Desktop.
Bricks OEIS A395531
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "eb0ac6ad-a4af-48a4-bd1c-509832c17b14",
"metadata": {
"execution": {
"iopub.execute_input": "2026-05-06T09:01:00.614052Z",
"iopub.status.busy": "2026-05-06T09:01:00.612773Z",
"iopub.status.idle": "2026-05-06T09:01:00.650245Z",
"shell.execute_reply": "2026-05-06T09:01:00.644397Z",
"shell.execute_reply.started": "2026-05-06T09:01:00.613852Z"
}
},
"outputs": [],
"source": [
"from itertools import count, takewhile\n",
"def a(): # Generator function for the sequence\n",
" rows = []\n",
" height = 0\n",
" for n in count(1):\n",
" if height==0 or n <= rows[height-1]:\n",
" yield n\n",
" height += 1\n",
" rows.append(n)\n",
" else:\n",
" for i in range(height-1, -1, -1):\n",
" if i==0 or rows[i] + n <= rows[i-1]:\n",
" rows[i] += n\n",
" break"
]
},
{
"cell_type": "markdown",
"id": "ab11d921-b3e1-4b3f-b8bd-0f38af520ee7",
"metadata": {},
"source": [
"~2 minutes in pypy3"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "35f034b8-c62b-4178-a430-87c944e2d035",
"metadata": {
"execution": {
"iopub.execute_input": "2026-05-06T08:47:56.468812Z",
"iopub.status.busy": "2026-05-06T08:47:56.466382Z",
"iopub.status.idle": "2026-05-06T08:47:56.577037Z",
"shell.execute_reply": "2026-05-06T08:47:56.573277Z",
"shell.execute_reply.started": "2026-05-06T08:47:56.467463Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"446\n"
]
}
],
"source": [
"A = [None] + list(takewhile(lambda x: x<10**5, a()))\n",
"A0 = A\n",
"print(len(A))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "50d77d15-bfed-4a55-a0b8-6ac309d454bf",
"metadata": {
"execution": {
"iopub.execute_input": "2026-05-06T09:01:12.715889Z",
"iopub.status.busy": "2026-05-06T09:01:12.713564Z",
"iopub.status.idle": "2026-05-06T09:01:12.777383Z",
"shell.execute_reply": "2026-05-06T09:01:12.771265Z",
"shell.execute_reply.started": "2026-05-06T09:01:12.715548Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"26129 height\n"
]
}
],
"source": [
"# precomputed using C++\n",
"try:\n",
" A = Ac = [None] + list(map(int, open(\"seq2.txt\").read().split()))\n",
" A = A[:-1]\n",
" print(len(A), \"height\")\n",
" Ac[:len(A0)] == A0\n",
"except:\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "545f873b-4227-424c-a675-5924f301a9ee",
"metadata": {
"execution": {
"iopub.execute_input": "2026-05-06T09:01:36.730021Z",
"iopub.status.busy": "2026-05-06T09:01:36.728819Z",
"iopub.status.idle": "2026-05-06T09:01:36.751681Z",
"shell.execute_reply": "2026-05-06T09:01:36.747022Z",
"shell.execute_reply.started": "2026-05-06T09:01:36.729829Z"
}
},
"outputs": [],
"source": [
"Arev = {val: index for index, val in enumerate(A)}"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "983c6f9b-65ec-4de7-8379-37bd4a6d4a38",
"metadata": {
"execution": {
"iopub.execute_input": "2026-05-06T09:08:34.625932Z",
"iopub.status.busy": "2026-05-06T09:08:34.623481Z",
"iopub.status.idle": "2026-05-06T09:08:34.739570Z",
"shell.execute_reply": "2026-05-06T09:08:34.735221Z",
"shell.execute_reply.started": "2026-05-06T09:08:34.625627Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"n = 3, in A395531? yes, a(n) = n(n+3)/2 + -2 = A.index(n) ? True\n",
"n = 6, in A395531? - , a(n) = n(n+3)/2 + -2 \n",
"n = 11, in A395531? yes, a(n) = n(n+3)/2 + -4 = A.index(n) ? True\n",
"n = 16, in A395531? yes, a(n) = n(n+3)/2 + -5 = A.index(n) ? True\n",
"n = 22, in A395531? - , a(n) = n(n+3)/2 + -3 \n",
"n = 32, in A395531? yes, a(n) = n(n+3)/2 + -7 = A.index(n) ? True\n",
"n = 40, in A395531? yes, a(n) = n(n+3)/2 + -8 = A.index(n) ? True\n",
"n = 49, in A395531? yes, a(n) = n(n+3)/2 + -9 = A.index(n) ? True\n",
"n = 59, in A395531? yes, a(n) = n(n+3)/2 + -10 = A.index(n) ? True\n",
"n = 67, in A395531? - , a(n) = n(n+3)/2 + -15 \n",
"n = 70, in A395531? - , a(n) = n(n+3)/2 + -8 \n",
"n = 85, in A395531? yes, a(n) = n(n+3)/2 + -12 = A.index(n) ? True\n",
"n = 98, in A395531? yes, a(n) = n(n+3)/2 + -13 = A.index(n) ? True\n",
"n = 112, in A395531? yes, a(n) = n(n+3)/2 + -14 = A.index(n) ? True\n",
"n = 127, in A395531? yes, a(n) = n(n+3)/2 + -15 = A.index(n) ? True\n",
"n = 137, in A395531? - , a(n) = n(n+3)/2 + -21 \n",
"n = 143, in A395531? - , a(n) = n(n+3)/2 + -12 \n",
"n = 164, in A395531? yes, a(n) = n(n+3)/2 + -17 = A.index(n) ? True\n",
"n = 182, in A395531? yes, a(n) = n(n+3)/2 + -18 = A.index(n) ? True\n",
"n = 201, in A395531? yes, a(n) = n(n+3)/2 + -19 = A.index(n) ? True\n",
"n = 221, in A395531? yes, a(n) = n(n+3)/2 + -20 = A.index(n) ? True\n",
"n = 242, in A395531? yes, a(n) = n(n+3)/2 + -21 = A.index(n) ? True\n",
"n = 248, in A395531? - , a(n) = n(n+3)/2 + -24 \n",
"n = 257, in A395531? - , a(n) = n(n+3)/2 + -28 \n",
"n = 264, in A395531? - , a(n) = n(n+3)/2 + -14 \n",
"n = 295, in A395531? yes, a(n) = n(n+3)/2 + -23 = A.index(n) ? True\n",
"n = 319, in A395531? yes, a(n) = n(n+3)/2 + -24 = A.index(n) ? True\n",
"n = 344, in A395531? yes, a(n) = n(n+3)/2 + -25 = A.index(n) ? True\n",
"n = 370, in A395531? yes, a(n) = n(n+3)/2 + -26 = A.index(n) ? True\n",
"n = 397, in A395531? yes, a(n) = n(n+3)/2 + -27 = A.index(n) ? True\n",
"n = 425, in A395531? yes, a(n) = n(n+3)/2 + -28 = A.index(n) ? True\n",
"n = 454, in A395531? yes, a(n) = n(n+3)/2 + -29 = A.index(n) ? True\n",
"n = 484, in A395531? yes, a(n) = n(n+3)/2 + -30 = A.index(n) ? True\n",
"n = 515, in A395531? yes, a(n) = n(n+3)/2 + -31 = A.index(n) ? True\n",
"n = 529, in A395531? - , a(n) = n(n+3)/2 + -39 \n",
"n = 547, in A395531? - , a(n) = n(n+3)/2 + -26 \n",
"n = 586, in A395531? yes, a(n) = n(n+3)/2 + -33 = A.index(n) ? True\n",
"n = 620, in A395531? yes, a(n) = n(n+3)/2 + -34 = A.index(n) ? True\n",
"n = 655, in A395531? yes, a(n) = n(n+3)/2 + -35 = A.index(n) ? True\n",
"n = 691, in A395531? yes, a(n) = n(n+3)/2 + -36 = A.index(n) ? True\n",
"n = 728, in A395531? yes, a(n) = n(n+3)/2 + -37 = A.index(n) ? True\n",
"n = 766, in A395531? yes, a(n) = n(n+3)/2 + -38 = A.index(n) ? True\n",
"n = 805, in A395531? yes, a(n) = n(n+3)/2 + -39 = A.index(n) ? True\n",
"n = 821, in A395531? - , a(n) = n(n+3)/2 + -48 \n",
"n = 845, in A395531? - , a(n) = n(n+3)/2 + -33 \n",
"n = 893, in A395531? yes, a(n) = n(n+3)/2 + -41 = A.index(n) ? True\n",
"n = 935, in A395531? yes, a(n) = n(n+3)/2 + -42 = A.index(n) ? True\n",
"n = 978, in A395531? yes, a(n) = n(n+3)/2 + -43 = A.index(n) ? True\n",
"n = 1022, in A395531? yes, a(n) = n(n+3)/2 + -44 = A.index(n) ? True\n",
"n = 1067, in A395531? yes, a(n) = n(n+3)/2 + -45 = A.index(n) ? True\n",
"n = 1113, in A395531? yes, a(n) = n(n+3)/2 + -46 = A.index(n) ? True\n",
"n = 1160, in A395531? yes, a(n) = n(n+3)/2 + -47 = A.index(n) ? True\n",
"n = 1208, in A395531? yes, a(n) = n(n+3)/2 + -48 = A.index(n) ? True\n",
"n = 1226, in A395531? - , a(n) = n(n+3)/2 + -58 \n",
"n = 1257, in A395531? - , a(n) = n(n+3)/2 + -41 \n",
"n = 1315, in A395531? yes, a(n) = n(n+3)/2 + -50 = A.index(n) ? True\n",
"n = 1366, in A395531? yes, a(n) = n(n+3)/2 + -51 = A.index(n) ? True\n",
"n = 1418, in A395531? yes, a(n) = n(n+3)/2 + -52 = A.index(n) ? True\n",
"n = 1471, in A395531? yes, a(n) = n(n+3)/2 + -53 = A.index(n) ? True\n",
"n = 1525, in A395531? yes, a(n) = n(n+3)/2 + -54 = A.index(n) ? True\n",
"n = 1580, in A395531? yes, a(n) = n(n+3)/2 + -55 = A.index(n) ? True\n",
"n = 1636, in A395531? yes, a(n) = n(n+3)/2 + -56 = A.index(n) ? True\n",
"n = 1693, in A395531? yes, a(n) = n(n+3)/2 + -57 = A.index(n) ? True\n",
"n = 1751, in A395531? yes, a(n) = n(n+3)/2 + -58 = A.index(n) ? True\n",
"n = 1771, in A395531? - , a(n) = n(n+3)/2 + -69 \n",
"n = 1810, in A395531? - , a(n) = n(n+3)/2 + -50 \n",
"n = 1879, in A395531? yes, a(n) = n(n+3)/2 + -60 = A.index(n) ? True\n",
"n = 1940, in A395531? yes, a(n) = n(n+3)/2 + -61 = A.index(n) ? True\n",
"n = 2002, in A395531? yes, a(n) = n(n+3)/2 + -62 = A.index(n) ? True\n",
"n = 2065, in A395531? yes, a(n) = n(n+3)/2 + -63 = A.index(n) ? True\n",
"n = 2129, in A395531? yes, a(n) = n(n+3)/2 + -64 = A.index(n) ? True\n",
"n = 2194, in A395531? yes, a(n) = n(n+3)/2 + -65 = A.index(n) ? True\n",
"n = 2260, in A395531? yes, a(n) = n(n+3)/2 + -66 = A.index(n) ? True\n",
"n = 2268, in A395531? - , a(n) = n(n+3)/2 + -71 \n",
"n = 2327, in A395531? - , a(n) = n(n+3)/2 + -64 \n",
"n = 2398, in A395531? yes, a(n) = n(n+3)/2 + -68 = A.index(n) ? True\n",
"n = 2467, in A395531? yes, a(n) = n(n+3)/2 + -69 = A.index(n) ? True\n",
"n = 2489, in A395531? - , a(n) = n(n+3)/2 + -81 \n",
"n = 2537, in A395531? - , a(n) = n(n+3)/2 + -60 \n",
"n = 2618, in A395531? yes, a(n) = n(n+3)/2 + -71 = A.index(n) ? True\n",
"n = 2690, in A395531? yes, a(n) = n(n+3)/2 + -72 = A.index(n) ? True\n",
"n = 2763, in A395531? yes, a(n) = n(n+3)/2 + -73 = A.index(n) ? True\n",
"n = 2837, in A395531? yes, a(n) = n(n+3)/2 + -74 = A.index(n) ? True\n",
"n = 2912, in A395531? yes, a(n) = n(n+3)/2 + -75 = A.index(n) ? True\n",
"n = 2988, in A395531? yes, a(n) = n(n+3)/2 + -76 = A.index(n) ? True\n",
"n = 3065, in A395531? yes, a(n) = n(n+3)/2 + -77 = A.index(n) ? True\n",
"n = 3143, in A395531? yes, a(n) = n(n+3)/2 + -78 = A.index(n) ? True\n",
"n = 3222, in A395531? yes, a(n) = n(n+3)/2 + -79 = A.index(n) ? True\n",
"n = 3302, in A395531? yes, a(n) = n(n+3)/2 + -80 = A.index(n) ? True\n",
"n = 3383, in A395531? yes, a(n) = n(n+3)/2 + -81 = A.index(n) ? True\n",
"n = 3465, in A395531? yes, a(n) = n(n+3)/2 + -82 = A.index(n) ? True\n",
"n = 3548, in A395531? yes, a(n) = n(n+3)/2 + -83 = A.index(n) ? True\n",
"n = 3632, in A395531? yes, a(n) = n(n+3)/2 + -84 = A.index(n) ? True\n",
"n = 3656, in A395531? - , a(n) = n(n+3)/2 + -97 \n",
"n = 3717, in A395531? - , a(n) = n(n+3)/2 + -74 \n",
"n = 3814, in A395531? yes, a(n) = n(n+3)/2 + -86 = A.index(n) ? True\n",
"n = 3901, in A395531? yes, a(n) = n(n+3)/2 + -87 = A.index(n) ? True\n",
"n = 3989, in A395531? yes, a(n) = n(n+3)/2 + -88 = A.index(n) ? True\n",
"n = 4078, in A395531? yes, a(n) = n(n+3)/2 + -89 = A.index(n) ? True\n",
"n = 4168, in A395531? yes, a(n) = n(n+3)/2 + -90 = A.index(n) ? True\n",
"n = 4259, in A395531? yes, a(n) = n(n+3)/2 + -91 = A.index(n) ? True\n",
"n = 4351, in A395531? yes, a(n) = n(n+3)/2 + -92 = A.index(n) ? True\n",
"n = 4444, in A395531? yes, a(n) = n(n+3)/2 + -93 = A.index(n) ? True\n",
"n = 4538, in A395531? yes, a(n) = n(n+3)/2 + -94 = A.index(n) ? True\n",
"n = 4633, in A395531? yes, a(n) = n(n+3)/2 + -95 = A.index(n) ? True\n",
"n = 4729, in A395531? yes, a(n) = n(n+3)/2 + -96 = A.index(n) ? True\n",
"n = 4826, in A395531? yes, a(n) = n(n+3)/2 + -97 = A.index(n) ? True\n",
"n = 4852, in A395531? - , a(n) = n(n+3)/2 + -111 \n",
"n = 4924, in A395531? - , a(n) = n(n+3)/2 + -86 \n",
"n = 5035, in A395531? yes, a(n) = n(n+3)/2 + -99 = A.index(n) ? True\n",
"n = 5135, in A395531? yes, a(n) = n(n+3)/2 + -100 = A.index(n) ? True\n",
"n = 5236, in A395531? yes, a(n) = n(n+3)/2 + -101 = A.index(n) ? True\n",
"n = 5338, in A395531? yes, a(n) = n(n+3)/2 + -102 = A.index(n) ? True\n",
"n = 5441, in A395531? yes, a(n) = n(n+3)/2 + -103 = A.index(n) ? True\n",
"n = 5545, in A395531? yes, a(n) = n(n+3)/2 + -104 = A.index(n) ? True\n",
"n = 5650, in A395531? yes, a(n) = n(n+3)/2 + -105 = A.index(n) ? True\n",
"n = 5756, in A395531? yes, a(n) = n(n+3)/2 + -106 = A.index(n) ? True\n",
"n = 5863, in A395531? yes, a(n) = n(n+3)/2 + -107 = A.index(n) ? True\n",
"n = 5971, in A395531? yes, a(n) = n(n+3)/2 + -108 = A.index(n) ? True\n",
"n = 6080, in A395531? yes, a(n) = n(n+3)/2 + -109 = A.index(n) ? True\n",
"n = 6190, in A395531? yes, a(n) = n(n+3)/2 + -110 = A.index(n) ? True\n",
"n = 6301, in A395531? yes, a(n) = n(n+3)/2 + -111 = A.index(n) ? True\n",
"n = 6329, in A395531? - , a(n) = n(n+3)/2 + -126 \n",
"n = 6413, in A395531? - , a(n) = n(n+3)/2 + -99 \n",
"n = 6539, in A395531? yes, a(n) = n(n+3)/2 + -113 = A.index(n) ? True\n",
"n = 6653, in A395531? yes, a(n) = n(n+3)/2 + -114 = A.index(n) ? True\n",
"n = 6768, in A395531? yes, a(n) = n(n+3)/2 + -115 = A.index(n) ? True\n",
"n = 6884, in A395531? yes, a(n) = n(n+3)/2 + -116 = A.index(n) ? True\n",
"n = 7001, in A395531? yes, a(n) = n(n+3)/2 + -117 = A.index(n) ? True\n",
"n = 7119, in A395531? yes, a(n) = n(n+3)/2 + -118 = A.index(n) ? True\n",
"n = 7238, in A395531? yes, a(n) = n(n+3)/2 + -119 = A.index(n) ? True\n",
"n = 7358, in A395531? yes, a(n) = n(n+3)/2 + -120 = A.index(n) ? True\n",
"n = 7479, in A395531? yes, a(n) = n(n+3)/2 + -121 = A.index(n) ? True\n",
"n = 7601, in A395531? yes, a(n) = n(n+3)/2 + -122 = A.index(n) ? True\n",
"n = 7724, in A395531? yes, a(n) = n(n+3)/2 + -123 = A.index(n) ? True\n",
"n = 7848, in A395531? yes, a(n) = n(n+3)/2 + -124 = A.index(n) ? True\n",
"n = 7973, in A395531? yes, a(n) = n(n+3)/2 + -125 = A.index(n) ? True\n",
"n = 8099, in A395531? yes, a(n) = n(n+3)/2 + -126 = A.index(n) ? True\n",
"n = 8129, in A395531? - , a(n) = n(n+3)/2 + -142 \n",
"n = 8226, in A395531? - , a(n) = n(n+3)/2 + -113 \n",
"n = 8368, in A395531? yes, a(n) = n(n+3)/2 + -128 = A.index(n) ? True\n",
"n = 8497, in A395531? yes, a(n) = n(n+3)/2 + -129 = A.index(n) ? True\n",
"n = 8627, in A395531? yes, a(n) = n(n+3)/2 + -130 = A.index(n) ? True\n",
"n = 8758, in A395531? yes, a(n) = n(n+3)/2 + -131 = A.index(n) ? True\n",
"n = 8890, in A395531? yes, a(n) = n(n+3)/2 + -132 = A.index(n) ? True\n",
"n = 9023, in A395531? yes, a(n) = n(n+3)/2 + -133 = A.index(n) ? True\n",
"n = 9157, in A395531? yes, a(n) = n(n+3)/2 + -134 = A.index(n) ? True\n",
"n = 9292, in A395531? yes, a(n) = n(n+3)/2 + -135 = A.index(n) ? True\n",
"n = 9428, in A395531? yes, a(n) = n(n+3)/2 + -136 = A.index(n) ? True\n",
"n = 9438, in A395531? - , a(n) = n(n+3)/2 + -142 \n",
"n = 9565, in A395531? - , a(n) = n(n+3)/2 + -133 \n",
"n = 9707, in A395531? yes, a(n) = n(n+3)/2 + -138 = A.index(n) ? True\n",
"n = 9846, in A395531? yes, a(n) = n(n+3)/2 + -139 = A.index(n) ? True\n",
"n = 9986, in A395531? yes, a(n) = n(n+3)/2 + -140 = A.index(n) ? True\n",
"n = 10127, in A395531? yes, a(n) = n(n+3)/2 + -141 = A.index(n) ? True\n",
"n = 10269, in A395531? yes, a(n) = n(n+3)/2 + -142 = A.index(n) ? True\n",
"n = 10301, in A395531? - , a(n) = n(n+3)/2 + -159 \n",
"n = 10412, in A395531? - , a(n) = n(n+3)/2 + -128 \n",
"n = 10571, in A395531? yes, a(n) = n(n+3)/2 + -144 = A.index(n) ? True\n",
"n = 10716, in A395531? yes, a(n) = n(n+3)/2 + -145 = A.index(n) ? True\n",
"n = 10862, in A395531? yes, a(n) = n(n+3)/2 + -146 = A.index(n) ? True\n",
"n = 11009, in A395531? yes, a(n) = n(n+3)/2 + -147 = A.index(n) ? True\n",
"n = 11157, in A395531? yes, a(n) = n(n+3)/2 + -148 = A.index(n) ? True\n",
"n = 11306, in A395531? yes, a(n) = n(n+3)/2 + -149 = A.index(n) ? True\n",
"n = 11456, in A395531? yes, a(n) = n(n+3)/2 + -150 = A.index(n) ? True\n",
"n = 11607, in A395531? yes, a(n) = n(n+3)/2 + -151 = A.index(n) ? True\n",
"n = 11759, in A395531? yes, a(n) = n(n+3)/2 + -152 = A.index(n) ? True\n",
"n = 11912, in A395531? yes, a(n) = n(n+3)/2 + -153 = A.index(n) ? True\n",
"n = 12066, in A395531? yes, a(n) = n(n+3)/2 + -154 = A.index(n) ? True\n",
"n = 12221, in A395531? yes, a(n) = n(n+3)/2 + -155 = A.index(n) ? True\n",
"n = 12377, in A395531? yes, a(n) = n(n+3)/2 + -156 = A.index(n) ? True\n",
"n = 12534, in A395531? yes, a(n) = n(n+3)/2 + -157 = A.index(n) ? True\n",
"n = 12692, in A395531? yes, a(n) = n(n+3)/2 + -158 = A.index(n) ? True\n",
"n = 12851, in A395531? yes, a(n) = n(n+3)/2 + -159 = A.index(n) ? True\n",
"n = 13011, in A395531? yes, a(n) = n(n+3)/2 + -160 = A.index(n) ? True\n",
"n = 13172, in A395531? yes, a(n) = n(n+3)/2 + -161 = A.index(n) ? True\n",
"n = 13334, in A395531? yes, a(n) = n(n+3)/2 + -162 = A.index(n) ? True\n",
"n = 13497, in A395531? yes, a(n) = n(n+3)/2 + -163 = A.index(n) ? True\n",
"n = 13531, in A395531? - , a(n) = n(n+3)/2 + -181 \n",
"n = 13661, in A395531? - , a(n) = n(n+3)/2 + -148 \n",
"n = 13842, in A395531? yes, a(n) = n(n+3)/2 + -165 = A.index(n) ? True\n",
"n = 14008, in A395531? yes, a(n) = n(n+3)/2 + -166 = A.index(n) ? True\n",
"n = 14175, in A395531? yes, a(n) = n(n+3)/2 + -167 = A.index(n) ? True\n",
"n = 14343, in A395531? yes, a(n) = n(n+3)/2 + -168 = A.index(n) ? True\n",
"n = 14512, in A395531? yes, a(n) = n(n+3)/2 + -169 = A.index(n) ? True\n",
"n = 14682, in A395531? yes, a(n) = n(n+3)/2 + -170 = A.index(n) ? True\n",
"n = 14853, in A395531? yes, a(n) = n(n+3)/2 + -171 = A.index(n) ? True\n",
"n = 15025, in A395531? yes, a(n) = n(n+3)/2 + -172 = A.index(n) ? True\n",
"n = 15198, in A395531? yes, a(n) = n(n+3)/2 + -173 = A.index(n) ? True\n",
"n = 15372, in A395531? yes, a(n) = n(n+3)/2 + -174 = A.index(n) ? True\n",
"n = 15547, in A395531? yes, a(n) = n(n+3)/2 + -175 = A.index(n) ? True\n",
"n = 15723, in A395531? yes, a(n) = n(n+3)/2 + -176 = A.index(n) ? True\n",
"n = 15900, in A395531? yes, a(n) = n(n+3)/2 + -177 = A.index(n) ? True\n",
"n = 16078, in A395531? yes, a(n) = n(n+3)/2 + -178 = A.index(n) ? True\n",
"n = 16257, in A395531? yes, a(n) = n(n+3)/2 + -179 = A.index(n) ? True\n",
"n = 16437, in A395531? yes, a(n) = n(n+3)/2 + -180 = A.index(n) ? True\n",
"n = 16618, in A395531? yes, a(n) = n(n+3)/2 + -181 = A.index(n) ? True\n",
"n = 16654, in A395531? - , a(n) = n(n+3)/2 + -200 \n",
"n = 16800, in A395531? - , a(n) = n(n+3)/2 + -165 \n",
"n = 17000, in A395531? yes, a(n) = n(n+3)/2 + -183 = A.index(n) ? True\n",
"n = 17184, in A395531? yes, a(n) = n(n+3)/2 + -184 = A.index(n) ? True\n",
"n = 17369, in A395531? yes, a(n) = n(n+3)/2 + -185 = A.index(n) ? True\n",
"n = 17555, in A395531? yes, a(n) = n(n+3)/2 + -186 = A.index(n) ? True\n",
"n = 17742, in A395531? yes, a(n) = n(n+3)/2 + -187 = A.index(n) ? True\n",
"n = 17930, in A395531? yes, a(n) = n(n+3)/2 + -188 = A.index(n) ? True\n",
"n = 18119, in A395531? yes, a(n) = n(n+3)/2 + -189 = A.index(n) ? True\n",
"n = 18309, in A395531? yes, a(n) = n(n+3)/2 + -190 = A.index(n) ? True\n",
"n = 18500, in A395531? yes, a(n) = n(n+3)/2 + -191 = A.index(n) ? True\n",
"n = 18692, in A395531? yes, a(n) = n(n+3)/2 + -192 = A.index(n) ? True\n",
"n = 18885, in A395531? yes, a(n) = n(n+3)/2 + -193 = A.index(n) ? True\n",
"n = 19079, in A395531? yes, a(n) = n(n+3)/2 + -194 = A.index(n) ? True\n",
"n = 19274, in A395531? yes, a(n) = n(n+3)/2 + -195 = A.index(n) ? True\n",
"n = 19470, in A395531? yes, a(n) = n(n+3)/2 + -196 = A.index(n) ? True\n",
"n = 19667, in A395531? yes, a(n) = n(n+3)/2 + -197 = A.index(n) ? True\n",
"n = 19865, in A395531? yes, a(n) = n(n+3)/2 + -198 = A.index(n) ? True\n",
"n = 20064, in A395531? yes, a(n) = n(n+3)/2 + -199 = A.index(n) ? True\n",
"n = 20264, in A395531? yes, a(n) = n(n+3)/2 + -200 = A.index(n) ? True\n",
"n = 20302, in A395531? - , a(n) = n(n+3)/2 + -220 \n",
"n = 20465, in A395531? - , a(n) = n(n+3)/2 + -183 \n",
"n = 20685, in A395531? yes, a(n) = n(n+3)/2 + -202 = A.index(n) ? True\n",
"n = 20888, in A395531? yes, a(n) = n(n+3)/2 + -203 = A.index(n) ? True\n",
"n = 21092, in A395531? yes, a(n) = n(n+3)/2 + -204 = A.index(n) ? True\n",
"n = 21297, in A395531? yes, a(n) = n(n+3)/2 + -205 = A.index(n) ? True\n",
"n = 21503, in A395531? yes, a(n) = n(n+3)/2 + -206 = A.index(n) ? True\n",
"n = 21710, in A395531? yes, a(n) = n(n+3)/2 + -207 = A.index(n) ? True\n",
"n = 21918, in A395531? yes, a(n) = n(n+3)/2 + -208 = A.index(n) ? True\n",
"n = 22127, in A395531? yes, a(n) = n(n+3)/2 + -209 = A.index(n) ? True\n",
"n = 22337, in A395531? yes, a(n) = n(n+3)/2 + -210 = A.index(n) ? True\n",
"n = 22548, in A395531? yes, a(n) = n(n+3)/2 + -211 = A.index(n) ? True\n",
"n = 22760, in A395531? yes, a(n) = n(n+3)/2 + -212 = A.index(n) ? True\n",
"n = 22973, in A395531? yes, a(n) = n(n+3)/2 + -213 = A.index(n) ? True\n",
"n = 23187, in A395531? yes, a(n) = n(n+3)/2 + -214 = A.index(n) ? True\n",
"n = 23402, in A395531? yes, a(n) = n(n+3)/2 + -215 = A.index(n) ? True\n",
"n = 23618, in A395531? yes, a(n) = n(n+3)/2 + -216 = A.index(n) ? True\n",
"n = 23835, in A395531? yes, a(n) = n(n+3)/2 + -217 = A.index(n) ? True\n",
"n = 24053, in A395531? yes, a(n) = n(n+3)/2 + -218 = A.index(n) ? True\n",
"n = 24272, in A395531? yes, a(n) = n(n+3)/2 + -219 = A.index(n) ? True\n",
"n = 24492, in A395531? yes, a(n) = n(n+3)/2 + -220 = A.index(n) ? True\n",
"n = 24532, in A395531? - , a(n) = n(n+3)/2 + -241 \n",
"n = 24713, in A395531? - , a(n) = n(n+3)/2 + -202 \n",
"n = 24954, in A395531? yes, a(n) = n(n+3)/2 + -222 = A.index(n) ? True\n",
"n = 25177, in A395531? yes, a(n) = n(n+3)/2 + -223 = A.index(n) ? True\n",
"n = 25401, in A395531? yes, a(n) = n(n+3)/2 + -224 = A.index(n) ? True\n",
"n = 25626, in A395531? yes, a(n) = n(n+3)/2 + -225 = A.index(n) ? True\n",
"n = 25852, in A395531? yes, a(n) = n(n+3)/2 + -226 = A.index(n) ? True\n",
"n = 26079, in A395531? yes, a(n) = n(n+3)/2 + -227 = A.index(n) ? True\n"
]
}
],
"source": [
"for n in range(2, len(A)):\n",
" if A[n] - A[n-1] != n:\n",
" in_A = [\" - \", \"yes\"][n in Arev]\n",
" \n",
" print(f\"n = {n:5d}, in A395531? {in_A}, a(n) = n(n+3)/2 + {A[n] - n*(n+3)//2}\", end=\" \")\n",
" if n in Arev:\n",
" print(\"= A.index(n) ? \", A[n] == n*(n+3)//2 - Arev[n])\n",
" assert A[n] == n*(n+3)//2 - Arev[n]\n",
" else:\n",
" print()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bad5ec4a-25fd-4065-95cd-8ea49fae7cd7",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "pypy3",
"language": "python",
"name": "pypy3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment