0001-1233.webm
Animation of algorithm
- Weave animated
- Graph object as artist's muse
- Digital Discocubes
- Command Line Usage
- Plotting the Solution
- Dependencies
- Running Times up to 8 billion
- Licensing
- β
Planar embedding of a cube and a discocube. From the set of all graphs G, where the order of G is of the Uncentered octahedral numbers A130809, only the first two instances shown above; n[0] and n[1] are planarly embeddable i.e., it can be represented on a two-dimensional surface without any of its edges crossing.
βͺ Graph object as artist's muse
βA great discovery solves a great problem, but there is a grain of discovery in the solution of any problem. Your problem may be modest, but if it challenges your curiosity and brings into play your inventive faculties, and if you solve it by your own means, you may experience the tension and enjoy the triumph of discovery.β
George PΓ³lya: How to Solve It: A New Aspect of Mathematical Method
A deterministic and linear-time algorithm for constructing a Hamiltonian cycle on all instances of discocube graphs (tested for graphs with over 8 billion vertices, the world's population). Discocube graphs are 3-dimensional grid graphs derived from: a polycube of an octahedron | a Hauy construction of an octahedron with cubes as identical building blocks | the accretion of cubes around a central cube forming an octahedron at the limit | the subgraph of the infinite 3-dimensional square grid graph consisting only of points contained within an octahedron | a 3d L1-norm unit ball.
This algorithm is an artist's rendering of his muse, a graph object, using programming as a language (instead of painting flowers and apples or singing hymns about angels) and a means by which to describe his muse's body as an endless contour drawing or, in graph theory terms, a Hamiltonian cycle.
Pablo Picasso: Trois Danseuses (The Three Dancers)
The graphs from platonic solids are all Hamiltonian.
What links an endless contour line drawing and a Hamiltonian cycle? Both entail tracing a path without interruption, using a continuous line to describe the subject/object to be depicted. An endless contour line drawing is one in which the artist uses a single, uninterrupted line to describe a subject's form and shape. Similarly, a Hamiltonian cycle describes a graph by tracing a path along edges of the graph, visiting vertex precisely once before returning to the beginning vertex. The path connects the vertices in a continuous line, describing the graph object.
Named after Sir William Rowan Hamilton, the Hamiltonian cycle problem is a classic graph theory problem solved by finding a closed loop in a graph that visits every node exactly once and ending at the starting point. Hamilton formulated the problem in the rules of his Icosian game, in which players insert numbered pegs into holes on a wooden board to represent steps in a path. The objective is to insert the pegs in order along a path to form a closed loop, much like the Hamiltonian cycle problem where the pegs represent nodes in a graph and the path of inserted pegs represents the cycle.
After pages of studies, drawings, and a little math, this algorithm is the result of using the artistic process to solve a mathematical problem without having the means by which to solve it mathematically. A love-child of banging your head against the wall until a hole appears (learning something) and bending the wall with your mind through pure will and imagination (winging it until you fly). When a graph becomes an artist's muse, how does the artist go about rendering their vision as a painter would paint a portrait, making it their own? Can one claim authorship by merely copying a form? If my new material is programming, would functions fill the studio of my mind otherwise filled with machines and material? Will I find patterns in the music I make from finding solutions?
dcbau.mp4
An artist manipulates their medium to create forms, using brush strokes to describe how the curve of the neck disappears behind the back, or playing with colors and contrasts to subtly bring the skin of a subject living 500 years ago back to life. For many, the medium is the end to itself, like painting a painting or photographing a photo, rather than the medium being wholly dependent on the concept or idea to be executed. In my artistic practice the medium used for any particular project is dependent on the first finding the right language and then developing it into a visual language.
In this project, I studied the discocube visually as a body, imagining each turn not as a discrete mathematical object but as a series of possible movements, as an endlessly iterated dance captured in a long camera exposure, resulting in less equating and more doodling, and wishing I knew more math. The result is a family of algorithms for finding Hamiltonian cycles with varying degrees of refinement (edge distribution), with the weave algorithm producing the least refinement. The other algorithms are concerned with finding an initial Hamiltonian cycle with a higher mutation rate and whose edges are more uniformly spread across the three axes x, y, and z, and through subsequent processes, the solution is polished like a diamond, i.e., the initial tour improved upon until the edges are evenly distributed across all three axes, culminating in an always-turning Hamiltonian cycle. Owing to the regularity and consistency of the solution produced by this determined and predictive algorithm, using weave() to obtain a diamond-grade discocube would take an inconceivable period of time, necessitating the development of other algorithms capable of accomplishing this reasonably.
dc_clseup.mp4
Why weave? Finding the solution to the problem reminded me of macramΓ©, of tying knots, weaving, and spinning yarn. I thought of how patterns in handwoven fabric are actually unwitting recordings of a knitter's hand movements, like how a piano roll is a recording of the pianist's finger hitting ebony, or how a seismograph records the motion of the earth, or how our skin is a type of recording of our life... I followed the thought further and asked myself: was there a pattern to expose and use to construct the discocube, level by level, similar to how one would knit a scarf, row by row, until the desired result is reached? To illustrate the intention of the code succinctly, I've structured the code to mimic the process of weaving a piece of tapestry, from spinning the yarn to incorporating the weft into the warps.
The first eleven discocubes and their respective orders (number of nodes)
To paraphrase Hauy:
When solving problems that involve analyzing how nature progresses, we are led by very rapid methods to results that are not immediately obvious. These results may appear paradoxical and surprising. However, if we take the time to carefully examine the steps we took to reach these results, we will begin to understand the underlying principles that led to these outcomes. By going back over the process step by step, we can better understand the logic behind the final results.
What started as a hack-your-own version of a depth-first search with shortcuts for the discocube graph (solving up to 960 vertices) metastasized into pages of overgrown mixin classes mysteriously coupled to each other like overgrown vines, pushing me deeper and deeper into the underbelly of its mutant tentacles. Although able to solve instances with over a million vertices, the algorithm had the clarity of primordial soup. So, as a sadistic gardener, I painstakingly pruned my own pubicity (my unescapable web of thorny vines) into presentable tiny bonsai trees. So what is a bonsai if not a tree in intimate scope?
dc_thomas.mp4
The result of this creative process is a family of algorithms developed specifically to solve various graph problems on dodecahedron graphs, 3D grid graphs, and hexprism honeycomb diamond graphs. The algorithm presented in this repository is the least complex, making it the fastest. It does the job, solving the Hamiltonian cycle problem for over millions of vertices in seconds and graphing with over a billion vertices in less than an hour and a graph with over 8 billion vertices in less than 5 hours, while other algorithms in the family take longer but also have other objectives, like forming an always-turning cycle with even edge distribution across all axes. But that's beyond the scope of this repository.
Detail for a Hamiltonian cycle for a graph with 79,040 nodes.
This algorithm has no while loops and will terminate after a definitive set of steps. The strength of this algorithm is knowing exactly when, where, and what is to happen, thereby reducing the amount of calculations needed (which is surprising as the creative process in creating this was anything but deterministic). It is a construction algorithm, constructing the path layer by layer until loops are produced, which are then joined using cycle merging. Further optimizations of the algorithm have also discarded the memory-heavy adjacency list, choosing instead to perform individual calculations where needed. Making and solving a graph with over a billion vertices, where n = 1000, won't require a distributed graph engine on the cloud anymore, and it takes a little over ten minutes.
βͺ Links
βͺ digital discocubes
Play around and inspect a digital discocube here
As each solution is as unique as a fingerprint, or a diamond it allows one to have their own digital version of a discocube, which is also an instruction for building your own.
see confetti cube digital here
Discocubes as glb, using different mirrored texture yields personalized results and unique reflections meaning each discocube has its own reflection/shadow fingerprint! With millions of combinations available (glass texture/image/color, mirror texture/image/color, edge texture/image/color), the possibilities are endless!
The always turning hamiltonian cycle digital discocubes are not produced by the algorithm in this repository, but by another polynomial-time algorithm.
βͺ Command line usage
To use the package via the command line, navigate to the root directory of the project in your terminal and run the following command:
cargo run --release [Graph start instance] [Graph end instance] [steps] [repeats]
cargo run --release 1 100 1 100
For each graph starting from 32 to 1.373 million vertices solve each graph order in steps of one and running each 100x to get the best time.
βͺ Plotting the solution
The solution can be plotted using this python module to visualize and check the solution.
βͺ Dependencies
This repository uses the following crates (ordered by most to least used) for which it is grateful.
For iterator traits, ndarrays, matrix operations on ndarrays, and parallelizing sequential computations:
itertools
Extra iterator adaptors, functions and macros.rayon
Data-parallelism library for parallelizing sequential computations whilst guaranteeing data-race freedom.ndarray
Provides an n-dimensional container for general elements and for numerics.
For serializing and writing to .csv
file:
csv
Fast and flexible CSV reader and writer, with support for Serde.serde
Framework for serializing and deserializing Rust data structures efficiently and generically.
For timestamping:
chrono
A feature-complete superset of the time library.
βͺ Running times
Running times from 8 to over 8 billion vertices
βͺ Running times for graphs with 8 to over 8 billion vertices (solved in under 1 hour)
| π³ 1 | βοΈ 8 | π 0.0000121670
| π³ 2 | βοΈ 32 | π 0.0000336670
| π³ 3 | βοΈ 80 | π 0.0000556250
| π³ 4 | βοΈ 160 | π 0.0000860830
| π³ 5 | βοΈ 280 | π 0.0001728340
| π³ 6 | βοΈ 448 | π 0.0002152500
| π³ 7 | βοΈ 672 | π 0.0002383330
| π³ 8 | βοΈ 960 | π 0.0002807920
| π³ 9 | βοΈ 1320 | π 0.0003124580
| π³ 10 | βοΈ 1760 | π 0.0003534590
| π³ 11 | βοΈ 2288 | π 0.0003796250
| π³ 12 | βοΈ 2912 | π 0.0004421670
| π³ 13 | βοΈ 3640 | π 0.0004606250
| π³ 14 | βοΈ 4480 | π 0.0005024590
| π³ 15 | βοΈ 5440 | π 0.0005727920
| π³ 16 | βοΈ 6528 | π 0.0006797920
| π³ 17 | βοΈ 7752 | π 0.0006532500
| π³ 18 | βοΈ 9120 | π 0.0006986670
| π³ 19 | βοΈ 10640 | π 0.0008152920
| π³ 20 | βοΈ 12320 | π 0.0008502500
| π³ 21 | βοΈ 14168 | π 0.0009908330
| π³ 22 | βοΈ 16192 | π 0.0009650000
| π³ 23 | βοΈ 18400 | π 0.0011169170
| π³ 24 | βοΈ 20800 | π 0.0011144590
| π³ 25 | βοΈ 23400 | π 0.0011674589
| π³ 26 | βοΈ 26208 | π 0.0013020000
| π³ 27 | βοΈ 29232 | π 0.0013477500
| π³ 28 | βοΈ 32480 | π 0.0014275840
| π³ 29 | βοΈ 35960 | π 0.0014958750
| π³ 30 | βοΈ 39680 | π 0.0014919169
| π³ 31 | βοΈ 43648 | π 0.0015422500
| π³ 32 | βοΈ 47872 | π 0.0016930420
| π³ 33 | βοΈ 52360 | π 0.0017866250
| π³ 34 | βοΈ 57120 | π 0.0018867080
| π³ 35 | βοΈ 62160 | π 0.0020575831
| π³ 36 | βοΈ 67488 | π 0.0020389170
| π³ 37 | βοΈ 73112 | π 0.0022446250
| π³ 38 | βοΈ 79040 | π 0.0022678750
| π³ 39 | βοΈ 85280 | π 0.0024716251
| π³ 40 | βοΈ 91840 | π 0.0025920840
| π³ 41 | βοΈ 98728 | π 0.0026535830
| π³ 42 | βοΈ 105952 | π 0.0027707920
| π³ 43 | βοΈ 113520 | π 0.0029962501
| π³ 44 | βοΈ 121440 | π 0.0029682911
| π³ 45 | βοΈ 129720 | π 0.0033047090
| π³ 46 | βοΈ 138368 | π 0.0034581251
| π³ 47 | βοΈ 147392 | π 0.0036917501
| π³ 48 | βοΈ 156800 | π 0.0038126251
| π³ 49 | βοΈ 166600 | π 0.0039234171
| π³ 50 | βοΈ 176800 | π 0.0039170841
| π³ 51 | βοΈ 187408 | π 0.0042002499
| π³ 52 | βοΈ 198432 | π 0.0043289168
| π³ 53 | βοΈ 209880 | π 0.0043575000
| π³ 54 | βοΈ 221760 | π 0.0045866668
| π³ 55 | βοΈ 234080 | π 0.0048543750
| π³ 56 | βοΈ 246848 | π 0.0049461662
| π³ 57 | βοΈ 260072 | π 0.0054035839
| π³ 58 | βοΈ 273760 | π 0.0055786660
| π³ 59 | βοΈ 287920 | π 0.0055797920
| π³ 60 | βοΈ 302560 | π 0.0060125832
| π³ 61 | βοΈ 317688 | π 0.0062666670
| π³ 62 | βοΈ 333312 | π 0.0064859171
| π³ 63 | βοΈ 349440 | π 0.0067297500
| π³ 64 | βοΈ 366080 | π 0.0070810001
| π³ 65 | βοΈ 383240 | π 0.0073842080
| π³ 66 | βοΈ 400928 | π 0.0075188749
| π³ 67 | βοΈ 419152 | π 0.0080193747
| π³ 68 | βοΈ 437920 | π 0.0091587501
| π³ 69 | βοΈ 457240 | π 0.0094685405
| π³ 70 | βοΈ 477120 | π 0.0086249169
| π³ 71 | βοΈ 497568 | π 0.0091080833
| π³ 72 | βοΈ 518592 | π 0.0094844159
| π³ 73 | βοΈ 540200 | π 0.0098849582
| π³ 74 | βοΈ 562400 | π 0.0103974165
| π³ 75 | βοΈ 585200 | π 0.0107163750
| π³ 76 | βοΈ 608608 | π 0.0108824996
| π³ 77 | βοΈ 632632 | π 0.0113353329
| π³ 78 | βοΈ 657280 | π 0.0114379581
| π³ 79 | βοΈ 682560 | π 0.0119424583
| π³ 80 | βοΈ 708480 | π 0.0127124172
| π³ 81 | βοΈ 735048 | π 0.0130524170
| π³ 82 | βοΈ 762272 | π 0.0137428343
| π³ 83 | βοΈ 790160 | π 0.0139735406
| π³ 84 | βοΈ 818720 | π 0.0146117499
| π³ 85 | βοΈ 847960 | π 0.0145710828
| π³ 86 | βοΈ 877888 | π 0.0154153341
| π³ 87 | βοΈ 908512 | π 0.0159500837
| π³ 88 | βοΈ 939840 | π 0.0162739586
| π³ 89 | βοΈ 971880 | π 0.0171253756
| π³ 90 | βοΈ 1004640 | π 0.0177017916
| π³ 91 | βοΈ 1038128 | π 0.0178309605
| π³ 92 | βοΈ 1072352 | π 0.0184610840
| π³ 93 | βοΈ 1107320 | π 0.0192627925
| π³ 94 | βοΈ 1143040 | π 0.0196390003
| π³ 95 | βοΈ 1179520 | π 0.0203737915
| π³ 96 | βοΈ 1216768 | π 0.0208999999
| π³ 97 | βοΈ 1254792 | π 0.0215984602
| π³ 98 | βοΈ 1293600 | π 0.0222403761
| π³ 99 | βοΈ 1333200 | π 0.0230612494
| π³ 100 | βοΈ 1373600 | π 0.0237264577
| π³ 101 | βοΈ 1414808 | π 0.0241850000
| π³ 102 | βοΈ 1456832 | π 0.0250747073
| π³ 103 | βοΈ 1499680 | π 0.0259533338
| π³ 104 | βοΈ 1543360 | π 0.0269267503
| π³ 105 | βοΈ 1587880 | π 0.0275232922
| π³ 106 | βοΈ 1633248 | π 0.0281232502
| π³ 107 | βοΈ 1679472 | π 0.0291454587
| π³ 108 | βοΈ 1726560 | π 0.0296714995
| π³ 109 | βοΈ 1774520 | π 0.0304882079
| π³ 110 | βοΈ 1823360 | π 0.0312354155
| π³ 111 | βοΈ 1873088 | π 0.0320182070
| π³ 112 | βοΈ 1923712 | π 0.0330021679
| π³ 113 | βοΈ 1975240 | π 0.0342445411
| π³ 114 | βοΈ 2027680 | π 0.0350919999
| π³ 115 | βοΈ 2081040 | π 0.0360104553
| π³ 116 | βοΈ 2135328 | π 0.0369302928
| π³ 117 | βοΈ 2190552 | π 0.0381915830
| π³ 118 | βοΈ 2246720 | π 0.0385576226
| π³ 119 | βοΈ 2303840 | π 0.0401081257
| π³ 120 | βοΈ 2361920 | π 0.0406793319
| π³ 121 | βοΈ 2420968 | π 0.0421322919
| π³ 122 | βοΈ 2480992 | π 0.0432262495
| π³ 123 | βοΈ 2542000 | π 0.0448335856
| π³ 124 | βοΈ 2604000 | π 0.0458601229
| π³ 125 | βοΈ 2667000 | π 0.0467119589
| π³ 126 | βοΈ 2731008 | π 0.0481842496
| π³ 127 | βοΈ 2796032 | π 0.0490408763
| π³ 128 | βοΈ 2862080 | π 0.0506184176
| π³ 129 | βοΈ 2929160 | π 0.0517759174
| π³ 130 | βοΈ 2997280 | π 0.0529624149
| π³ 131 | βοΈ 3066448 | π 0.0550655387
| π³ 132 | βοΈ 3136672 | π 0.0554944165
| π³ 133 | βοΈ 3207960 | π 0.0574050397
| π³ 134 | βοΈ 3280320 | π 0.0590833314
| π³ 135 | βοΈ 3353760 | π 0.0595314987
| π³ 136 | βοΈ 3428288 | π 0.0616207533
| π³ 137 | βοΈ 3503912 | π 0.0627114177
| π³ 138 | βοΈ 3580640 | π 0.0649086237
| π³ 139 | βοΈ 3658480 | π 0.0664635450
| π³ 140 | βοΈ 3737440 | π 0.0669075847
| π³ 141 | βοΈ 3817528 | π 0.0695139617
| π³ 142 | βοΈ 3898752 | π 0.0711619630
| π³ 143 | βοΈ 3981120 | π 0.0727650821
| π³ 144 | βοΈ 4064640 | π 0.0747104138
| π³ 145 | βοΈ 4149320 | π 0.0756006241
| π³ 146 | βοΈ 4235168 | π 0.0783675835
| π³ 147 | βοΈ 4322192 | π 0.0801399201
| π³ 148 | βοΈ 4410400 | π 0.0825362056
| π³ 149 | βοΈ 4499800 | π 0.0837670788
| π³ 150 | βοΈ 4590400 | π 0.0853706226
| π³ 151 | βοΈ 4682208 | π 0.0879387930
| π³ 152 | βοΈ 4775232 | π 0.0900958702
| π³ 153 | βοΈ 4869480 | π 0.0924538299
| π³ 154 | βοΈ 4964960 | π 0.0951462910
| π³ 155 | βοΈ 5061680 | π 0.0967189595
| π³ 156 | βοΈ 5159648 | π 0.0988397151
| π³ 157 | βοΈ 5258872 | π 0.1019583791
| π³ 158 | βοΈ 5359360 | π 0.1027188748
| π³ 159 | βοΈ 5461120 | π 0.1059616208
| π³ 160 | βοΈ 5564160 | π 0.1081095040
| π³ 161 | βοΈ 5668488 | π 0.1102593392
| π³ 162 | βοΈ 5774112 | π 0.1126611307
| π³ 163 | βοΈ 5881040 | π 0.1150461286
| π³ 164 | βοΈ 5989280 | π 0.1181682497
| π³ 165 | βοΈ 6098840 | π 0.1205536276
| π³ 166 | βοΈ 6209728 | π 0.1237108335
| π³ 167 | βοΈ 6321952 | π 0.1253125370
| π³ 168 | βοΈ 6435520 | π 0.1278068274
| π³ 169 | βοΈ 6550440 | π 0.1313734204
| π³ 170 | βοΈ 6666720 | π 0.1344302148
| π³ 171 | βοΈ 6784368 | π 0.1370944977
| π³ 172 | βοΈ 6903392 | π 0.1395644099
| π³ 173 | βοΈ 7023800 | π 0.1428508759
| π³ 174 | βοΈ 7145600 | π 0.1446470916
| π³ 175 | βοΈ 7268800 | π 0.1485457122
| π³ 176 | βοΈ 7393408 | π 0.1515042037
| π³ 177 | βοΈ 7519432 | π 0.1547876298
| π³ 178 | βοΈ 7646880 | π 0.1581035405
| π³ 179 | βοΈ 7775760 | π 0.1609414220
| π³ 180 | βοΈ 7906080 | π 0.1643581241
| π³ 181 | βοΈ 8037848 | π 0.1674534231
| π³ 182 | βοΈ 8171072 | π 0.1702348739
| π³ 183 | βοΈ 8305760 | π 0.1744350940
| π³ 184 | βοΈ 8441920 | π 0.1764109582
| π³ 185 | βοΈ 8579560 | π 0.1822682619
| π³ 186 | βοΈ 8718688 | π 0.1858128011
| π³ 187 | βοΈ 8859312 | π 0.1893977076
| π³ 188 | βοΈ 9001440 | π 0.1925365478
| π³ 189 | βοΈ 9145080 | π 0.1966986209
| π³ 190 | βοΈ 9290240 | π 0.2020906210
| π³ 191 | βοΈ 9436928 | π 0.2058481574
| π³ 192 | βοΈ 9585152 | π 0.2081409991
| π³ 193 | βοΈ 9734920 | π 0.2135929614
| π³ 194 | βοΈ 9886240 | π 0.2167537063
| π³ 195 | βοΈ 10039120 | π 0.2204166204
| π³ 196 | βοΈ 10193568 | π 0.2253544927
| π³ 197 | βοΈ 10349592 | π 0.2297920436
| π³ 198 | βοΈ 10507200 | π 0.2340660542
| π³ 199 | βοΈ 10666400 | π 0.2374149561
| π³ 200 | βοΈ 10827200 | π 0.2429190129
| π³ 201 | βοΈ 10989608 | π 0.2486662567
| π³ 202 | βοΈ 11153632 | π 0.2522604764
| π³ 203 | βοΈ 11319280 | π 0.2565264702
| π³ 204 | βοΈ 11486560 | π 0.2610530257
| π³ 205 | βοΈ 11655480 | π 0.2666850388
| π³ 206 | βοΈ 11826048 | π 0.2696547210
| π³ 207 | βοΈ 11998272 | π 0.2757692039
| π³ 208 | βοΈ 12172160 | π 0.2815547585
| π³ 209 | βοΈ 12347720 | π 0.2862318456
| π³ 210 | βοΈ 12524960 | π 0.2915490866
| π³ 211 | βοΈ 12703888 | π 0.2969746590
| π³ 212 | βοΈ 12884512 | π 0.3020814955
| π³ 213 | βοΈ 13066840 | π 0.3068147600
| π³ 214 | βοΈ 13250880 | π 0.3128221631
| π³ 215 | βοΈ 13436640 | π 0.3169069588
| π³ 216 | βοΈ 13624128 | π 0.3231490850
| π³ 217 | βοΈ 13813352 | π 0.3292649388
| π³ 218 | βοΈ 14004320 | π 0.3355272114
| π³ 219 | βοΈ 14197040 | π 0.3442309499
| π³ 220 | βοΈ 14391520 | π 0.3481214046
| π³ 221 | βοΈ 14587768 | π 0.3518816829
| π³ 222 | βοΈ 14785792 | π 0.3584341705
| π³ 223 | βοΈ 14985600 | π 0.3655003309
| π³ 224 | βοΈ 15187200 | π 0.3700094819
| π³ 225 | βοΈ 15390600 | π 0.3760042489
| π³ 226 | βοΈ 15595808 | π 0.3842642903
| π³ 227 | βοΈ 15802832 | π 0.3881231546
| π³ 228 | βοΈ 16011680 | π 0.3951343596
| π³ 229 | βοΈ 16222360 | π 0.4000105858
| π³ 230 | βοΈ 16434880 | π 0.4087437987
| π³ 231 | βοΈ 16649248 | π 0.4144673347
| π³ 232 | βοΈ 16865472 | π 0.4193789363
| π³ 233 | βοΈ 17083560 | π 0.4283965230
| π³ 234 | βοΈ 17303520 | π 0.4355364442
| π³ 235 | βοΈ 17525360 | π 0.4420328736
| π³ 236 | βοΈ 17749088 | π 0.4497081339
| π³ 237 | βοΈ 17974712 | π 0.4586576819
| π³ 238 | βοΈ 18202240 | π 0.4644054174
| π³ 239 | βοΈ 18431680 | π 0.4720064402
| π³ 240 | βοΈ 18663040 | π 0.4793971479
| π³ 241 | βοΈ 18896328 | π 0.4870021641
| π³ 242 | βοΈ 19131552 | π 0.4953063130
| π³ 243 | βοΈ 19368720 | π 0.5006814003
| π³ 244 | βοΈ 19607840 | π 0.5105180740
| π³ 245 | βοΈ 19848920 | π 0.5178053379
| π³ 246 | βοΈ 20091968 | π 0.5275897980
| π³ 247 | βοΈ 20336992 | π 0.5355270505
| π³ 248 | βοΈ 20584000 | π 0.5422776937
| π³ 249 | βοΈ 20833000 | π 0.5512285233
| π³ 250 | βοΈ 21084000 | π 0.5612413883
| π³ 251 | βοΈ 21337008 | π 0.5668765903
| π³ 252 | βοΈ 21592032 | π 0.5786451101
| π³ 253 | βοΈ 21849080 | π 0.5857163668
| π³ 254 | βοΈ 22108160 | π 0.5941022635
| π³ 255 | βοΈ 22369280 | π 0.6033035517
| π³ 256 | βοΈ 22632448 | π 0.6252706647
| π³ 257 | βοΈ 22897672 | π 0.6327763200
| π³ 258 | βοΈ 23164960 | π 0.6434557438
| π³ 259 | βοΈ 23434320 | π 0.6519679427
| π³ 260 | βοΈ 23705760 | π 0.6610835791
| π³ 261 | βοΈ 23979288 | π 0.6737011075
| π³ 262 | βοΈ 24254912 | π 0.6827772856
| π³ 263 | βοΈ 24532640 | π 0.6937137246
| π³ 264 | βοΈ 24812480 | π 0.7061291337
| π³ 265 | βοΈ 25094440 | π 0.7181665301
| π³ 266 | βοΈ 25378528 | π 0.7214239240
| π³ 267 | βοΈ 25664752 | π 0.7408060431
| π³ 268 | βοΈ 25953120 | π 0.7548851967
| π³ 269 | βοΈ 26243640 | π 0.7708546519
| π³ 270 | βοΈ 26536320 | π 0.7776065469
| π³ 271 | βοΈ 26831168 | π 0.7914184332
| π³ 272 | βοΈ 27128192 | π 0.7949767709
| π³ 273 | βοΈ 27427400 | π 0.8101597428
| π³ 274 | βοΈ 27728800 | π 0.8232811093
| π³ 275 | βοΈ 28032400 | π 0.8323560357
| π³ 276 | βοΈ 28338208 | π 0.8405999541
| π³ 277 | βοΈ 28646232 | π 0.8595604300
| π³ 278 | βοΈ 28956480 | π 0.8712547421
| π³ 279 | βοΈ 29268960 | π 0.8897573352
| π³ 280 | βοΈ 29583680 | π 0.9022457004
| π³ 281 | βοΈ 29900648 | π 0.9105177522
| π³ 282 | βοΈ 30219872 | π 0.9232621193
| π³ 283 | βοΈ 30541360 | π 0.9378010631
| π³ 284 | βοΈ 30865120 | π 0.9549767971
| π³ 285 | βοΈ 31191160 | π 0.9584531784
| π³ 286 | βοΈ 31519488 | π 0.9730947018
| π³ 287 | βοΈ 31850112 | π 0.9911147952
| π³ 288 | βοΈ 32183040 | π 1.0046166182
| π³ 289 | βοΈ 32518280 | π 1.0104249716
| π³ 290 | βοΈ 32855840 | π 1.0377593040
| π³ 291 | βοΈ 33195728 | π 1.0476689339
| π³ 292 | βοΈ 33537952 | π 1.0634326935
| π³ 293 | βοΈ 33882520 | π 1.0750583410
| π³ 294 | βοΈ 34229440 | π 1.0891497135
| π³ 295 | βοΈ 34578720 | π 1.1051938534
| π³ 296 | βοΈ 34930368 | π 1.1190025806
| π³ 297 | βοΈ 35284392 | π 1.1377320290
| π³ 298 | βοΈ 35640800 | π 1.1448394060
| π³ 299 | βοΈ 35999600 | π 1.1700984240
| π³ 300 | βοΈ 36360800 | π 1.1781280041
| π³ 301 | βοΈ 36724408 | π 1.1975694895
| π³ 302 | βοΈ 37090432 | π 1.2077808380
| π³ 303 | βοΈ 37458880 | π 1.2310798168
| π³ 304 | βοΈ 37829760 | π 1.2437727451
| π³ 305 | βοΈ 38203080 | π 1.2562892437
| π³ 306 | βοΈ 38578848 | π 1.2775118351
| π³ 307 | βοΈ 38957072 | π 1.2918379307
| π³ 308 | βοΈ 39337760 | π 1.3126298189
| π³ 309 | βοΈ 39720920 | π 1.3313826323
| π³ 310 | βοΈ 40106560 | π 1.3432358503
| π³ 311 | βοΈ 40494688 | π 1.3551286459
| π³ 312 | βοΈ 40885312 | π 1.3776762486
| π³ 313 | βοΈ 41278440 | π 1.3859341145
| π³ 314 | βοΈ 41674080 | π 1.4143201113
| π³ 315 | βοΈ 42072240 | π 1.4270088673
| π³ 316 | βοΈ 42472928 | π 1.4452447891
| π³ 317 | βοΈ 42876152 | π 1.4563241005
| π³ 318 | βοΈ 43281920 | π 1.4832894802
| π³ 319 | βοΈ 43690240 | π 1.5032505989
| π³ 320 | βοΈ 44101120 | π 1.4987275600
| π³ 321 | βοΈ 44514568 | π 1.5415856838
| π³ 322 | βοΈ 44930592 | π 1.5574114323
| π³ 323 | βοΈ 45349200 | π 1.5809527636
| π³ 324 | βοΈ 45770400 | π 1.5889067650
| π³ 325 | βοΈ 46194200 | π 1.6091566086
| π³ 326 | βοΈ 46620608 | π 1.6281342506
| π³ 327 | βοΈ 47049632 | π 1.6434062719
| π³ 328 | βοΈ 47481280 | π 1.6657049656
| π³ 329 | βοΈ 47915560 | π 1.6852111816
| π³ 330 | βοΈ 48352480 | π 1.6988587379
| π³ 331 | βοΈ 48792048 | π 1.7205665112
| π³ 332 | βοΈ 49234272 | π 1.7402656078
| π³ 333 | βοΈ 49679160 | π 1.7440986633
| π³ 334 | βοΈ 50126720 | π 1.7606859207
| π³ 335 | βοΈ 50576960 | π 1.7603950500
| π³ 336 | βοΈ 51029888 | π 1.7924468517
| π³ 337 | βοΈ 51485512 | π 1.8042736053
| π³ 338 | βοΈ 51943840 | π 1.8152449131
| π³ 339 | βοΈ 52404880 | π 1.8430088758
| π³ 340 | βοΈ 52868640 | π 1.8608152866
| π³ 341 | βοΈ 53335128 | π 1.8804984093
| π³ 342 | βοΈ 53804352 | π 1.8971538544
| π³ 343 | βοΈ 54276320 | π 1.9238594770
| π³ 344 | βοΈ 54751040 | π 1.9492731094
| π³ 345 | βοΈ 55228520 | π 1.9652727842
| π³ 346 | βοΈ 55708768 | π 1.9872024059
| π³ 347 | βοΈ 56191792 | π 2.0084447861
| π³ 348 | βοΈ 56677600 | π 2.0305397511
| π³ 349 | βοΈ 57166200 | π 2.0602569580
| π³ 350 | βοΈ 57657600 | π 2.0797111988
| π³ 351 | βοΈ 58151808 | π 2.0990145206
| π³ 352 | βοΈ 58648832 | π 2.1228535175
| π³ 353 | βοΈ 59148680 | π 2.1440532207
| π³ 354 | βοΈ 59651360 | π 2.1542353630
| π³ 355 | βοΈ 60156880 | π 2.1813373566
| π³ 356 | βοΈ 60665248 | π 2.2163894176
| π³ 357 | βοΈ 61176472 | π 2.2290546894
| π³ 358 | βοΈ 61690560 | π 2.2577862740
| π³ 359 | βοΈ 62207520 | π 2.2764096260
| π³ 360 | βοΈ 62727360 | π 2.3054440022
| π³ 361 | βοΈ 63250088 | π 2.3209156990
| π³ 362 | βοΈ 63775712 | π 2.3474292755
| π³ 363 | βοΈ 64304240 | π 2.3677115440
| π³ 364 | βοΈ 64835680 | π 2.4003891945
| π³ 365 | βοΈ 65370040 | π 2.4228780270
| π³ 366 | βοΈ 65907328 | π 2.4527673721
| π³ 367 | βοΈ 66447552 | π 2.4714524746
| π³ 368 | βοΈ 66990720 | π 2.5030930042
| π³ 369 | βοΈ 67536840 | π 2.5241811275
| π³ 370 | βοΈ 68085920 | π 2.5526947975
| π³ 371 | βοΈ 68637968 | π 2.5826325417
| π³ 372 | βοΈ 69192992 | π 2.6038544178
| π³ 373 | βοΈ 69751000 | π 2.6332132816
| π³ 374 | βοΈ 70312000 | π 2.6593961716
| π³ 375 | βοΈ 70876000 | π 2.6879386902
| π³ 376 | βοΈ 71443008 | π 2.7146666050
| π³ 377 | βοΈ 72013032 | π 2.7563600540
| π³ 378 | βοΈ 72586080 | π 2.7757461071
| π³ 379 | βοΈ 73162160 | π 2.7977271080
| π³ 380 | βοΈ 73741280 | π 2.8362705708
| π³ 381 | βοΈ 74323448 | π 2.8553814888
| π³ 382 | βοΈ 74908672 | π 2.8915631771
| π³ 383 | βοΈ 75496960 | π 2.9218170643
| π³ 384 | βοΈ 76088320 | π 2.9435520172
| π³ 385 | βοΈ 76682760 | π 2.9808762074
| π³ 386 | βοΈ 77280288 | π 3.0130045414
| π³ 387 | βοΈ 77880912 | π 3.0382304192
| π³ 388 | βοΈ 78484640 | π 3.0813434124
| π³ 389 | βοΈ 79091480 | π 3.0979421139
| π³ 390 | βοΈ 79701440 | π 3.1379735470
| π³ 391 | βοΈ 80314528 | π 3.1679635048
| π³ 392 | βοΈ 80930752 | π 3.1992635727
| π³ 393 | βοΈ 81550120 | π 3.2300934792
| π³ 394 | βοΈ 82172640 | π 3.2542500496
| π³ 395 | βοΈ 82798320 | π 3.2980310917
| π³ 396 | βοΈ 83427168 | π 3.3268754482
| π³ 397 | βοΈ 84059192 | π 3.3620347977
| π³ 398 | βοΈ 84694400 | π 3.3948915005
| π³ 399 | βοΈ 85332800 | π 3.4242134094
| π³ 400 | βοΈ 85974400 | π 3.4592323303
| π³ 401 | βοΈ 86619208 | π 3.4899778366
| π³ 402 | βοΈ 87267232 | π 3.5227410793
| π³ 403 | βοΈ 87918480 | π 3.5635776520
| π³ 404 | βοΈ 88572960 | π 3.5935065746
| π³ 405 | βοΈ 89230680 | π 3.6327414513
| π³ 406 | βοΈ 89891648 | π 3.6607322693
| π³ 407 | βοΈ 90555872 | π 3.6933164597
| π³ 408 | βοΈ 91223360 | π 3.7418606281
| π³ 409 | βοΈ 91894120 | π 3.7638649940
| π³ 410 | βοΈ 92568160 | π 3.8051760197
| π³ 411 | βοΈ 93245488 | π 3.8393759727
| π³ 412 | βοΈ 93926112 | π 3.8652687073
| π³ 413 | βοΈ 94610040 | π 3.9112775326
| π³ 414 | βοΈ 95297280 | π 3.9450783730
| π³ 415 | βοΈ 95987840 | π 3.9859733582
| π³ 416 | βοΈ 96681728 | π 4.0158762932
| π³ 417 | βοΈ 97378952 | π 4.0553226471
| π³ 418 | βοΈ 98079520 | π 4.0899710655
| π³ 419 | βοΈ 98783440 | π 4.1247377396
| π³ 420 | βοΈ 99490720 | π 4.1694235802
| π³ 421 | βοΈ 100201368 | π 4.2037181854
| π³ 422 | βοΈ 100915392 | π 4.2537355423
| π³ 423 | βοΈ 101632800 | π 4.2907476425
| π³ 424 | βοΈ 102353600 | π 4.3410701752
| π³ 425 | βοΈ 103077800 | π 4.4085803032
| π³ 426 | βοΈ 103805408 | π 4.4271612167
| π³ 427 | βοΈ 104536432 | π 4.4607510567
| π³ 428 | βοΈ 105270880 | π 4.5109295845
| π³ 429 | βοΈ 106008760 | π 4.5306105614
| π³ 430 | βοΈ 106750080 | π 4.5749878883
| π³ 431 | βοΈ 107494848 | π 4.6500787735
| π³ 432 | βοΈ 108243072 | π 4.6717743874
| π³ 433 | βοΈ 108994760 | π 4.7238435745
| π³ 434 | βοΈ 109749920 | π 4.7592077255
| π³ 435 | βοΈ 110508560 | π 4.7970252037
| π³ 436 | βοΈ 111270688 | π 4.8226242065
| π³ 437 | βοΈ 112036312 | π 4.8673853874
| π³ 438 | βοΈ 112805440 | π 4.9161777496
| π³ 439 | βοΈ 113578080 | π 4.9609446526
| π³ 440 | βοΈ 114354240 | π 5.0242443085
| π³ 441 | βοΈ 115133928 | π 5.0692362785
| π³ 442 | βοΈ 115917152 | π 5.1170597076
| π³ 443 | βοΈ 116703920 | π 5.1668162346
| π³ 444 | βοΈ 117494240 | π 5.1868915558
| π³ 445 | βοΈ 118288120 | π 5.2363333702
| π³ 446 | βοΈ 119085568 | π 5.2728896141
| π³ 447 | βοΈ 119886592 | π 5.3395667076
| π³ 448 | βοΈ 120691200 | π 5.3689684868
| π³ 449 | βοΈ 121499400 | π 5.4454574585
| π³ 450 | βοΈ 122311200 | π 5.4567236900
| π³ 451 | βοΈ 123126608 | π 5.5140542984
| π³ 452 | βοΈ 123945632 | π 5.5848412514
| π³ 453 | βοΈ 124768280 | π 5.6180467606
| π³ 454 | βοΈ 125594560 | π 5.7027635574
| π³ 455 | βοΈ 126424480 | π 5.7007894516
| π³ 456 | βοΈ 127258048 | π 5.7667279243
| π³ 457 | βοΈ 128095272 | π 5.8025741577
| π³ 458 | βοΈ 128936160 | π 5.8558149338
| π³ 459 | βοΈ 129780720 | π 5.9396958351
| π³ 460 | βοΈ 130628960 | π 5.9576253891
| π³ 461 | βοΈ 131480888 | π 5.9992723465
| π³ 462 | βοΈ 132336512 | π 6.0377497673
| π³ 463 | βοΈ 133195840 | π 6.0959258080
| π³ 464 | βοΈ 134058880 | π 6.1883983612
| π³ 465 | βοΈ 134925640 | π 6.2206907272
| π³ 466 | βοΈ 135796128 | π 6.2725119591
| π³ 467 | βοΈ 136670352 | π 6.2992658615
| π³ 468 | βοΈ 137548320 | π 6.3347177505
| π³ 469 | βοΈ 138430040 | π 6.4146580696
| π³ 470 | βοΈ 139315520 | π 6.4513297081
| π³ 471 | βοΈ 140204768 | π 6.5426158905
| π³ 472 | βοΈ 141097792 | π 6.5523233414
| π³ 473 | βοΈ 141994600 | π 6.6255145073
| π³ 474 | βοΈ 142895200 | π 6.6785917282
| π³ 475 | βοΈ 143799600 | π 6.7110738754
| π³ 476 | βοΈ 144707808 | π 6.8051223755
| π³ 477 | βοΈ 145619832 | π 6.8102507591
| π³ 478 | βοΈ 146535680 | π 6.8606562614
| π³ 479 | βοΈ 147455360 | π 6.9208254814
| π³ 480 | βοΈ 148378880 | π 6.9970793724
| π³ 481 | βοΈ 149306248 | π 7.0476222038
| π³ 482 | βοΈ 150237472 | π 7.1175599098
| π³ 483 | βοΈ 151172560 | π 7.1777501106
| π³ 484 | βοΈ 152111520 | π 7.2448754311
| π³ 485 | βοΈ 153054360 | π 7.2952923775
| π³ 486 | βοΈ 154001088 | π 7.3523969650
| π³ 487 | βοΈ 154951712 | π 7.4165315628
| π³ 488 | βοΈ 155906240 | π 7.4655795097
| π³ 489 | βοΈ 156864680 | π 7.5236325264
| π³ 490 | βοΈ 157827040 | π 7.5819687843
| π³ 491 | βοΈ 158793328 | π 7.6839604378
| π³ 492 | βοΈ 159763552 | π 7.7059221268
| π³ 493 | βοΈ 160737720 | π 7.7312030792
| π³ 494 | βοΈ 161715840 | π 7.8410520554
| π³ 495 | βοΈ 162697920 | π 7.8767709732
| π³ 496 | βοΈ 163683968 | π 7.9313440323
| π³ 497 | βοΈ 164673992 | π 8.0396604538
| π³ 498 | βοΈ 165668000 | π 8.0553207397
| π³ 499 | βοΈ 166666000 | π 8.1096744537
| π³ 500 | βοΈ 167668000 | π 8.1465568542
| π³ 600 | βοΈ 289441600 | π 17.5048580170
| π³ 700 | βοΈ 459295200 | π 35.5125579834
| π³ 800 | βοΈ 685228800 | π 116.5416107178
| π³ 900 | βοΈ 975242400 | π 174.7076110840
| π³ 1000 | βοΈ 1337336000 | π 240.5564362585
| π³ 1100 | βοΈ 1779509600 | π 324.5367092784
| π³ 1200 | βοΈ 2309763200 | π 434.1448342025
| π³ 1300 | βοΈ 2936096800 | π 527.8912534102
| π³ 1400 | βοΈ 3666510400 | π 660.1129210170
| π³ 1500 | βοΈ 4509004000 | π 816.2368340823
| π³ 1600 | βοΈ 5471577600 | π 1001.091214897
| π³ 1700 | βοΈ 6562231200 | π 1332.292241911
| π³ 1800 | βοΈ 7788964800 | π 1638.822858899
| π³ 1900 | βοΈ 9159778400 | π 1987.633434514
βͺ Licensing
This package is licensed under the MIT license.
Thanks for making it this far!