Powder
Jump to navigation
Jump to search
Paradigm(s) | imperative, structured, functional, object-oriented |
---|---|
Designed by | User:A |
Appeared in | 2019 |
Computational class | Turing complete |
Reference implementation | No implementations |
Influenced by | JSON, Lua |
File extension(s) | .conf |
Powder is an inefficient and lightweight esoteric programming language based on defining tables by User:A. This is created to provide an example of a lightweight and extensible general-purpose programming language. (In this case, it creates an object-oriented notation using tags.) This is partly influenced by JSON's structure.
Documentation
Operator | Function |
---|---|
{ | Begin a table |
} | Ends a table |
: | Make a tag |
, | Separator of table values |
" | Tag indicator |
. | Index tags |
' | Refer to value |
Actual Documentation
{ "This table enclosed by braces( {} ) is the main table. You cannot delete this from any Powder program." : 0, "That thing above enclosed by quotation marks is a tag. You can assign anything valid in the syntax to a tag: a table, a value, or a tag. You can use a colon( : ) to set a tag to a value. Note that a tag assignment has to end in a comma(,), except for the last tag in the main table, which is not mandatory. (You have to make sure that a tag does not contain quotation marks.)" : 0, "Assigning a tag to a 0 is equivalent to a multi-line comment." : 0, "Example:" : 1234, "This assigns the tag Example to 1234." : 0, "This is an example to assign a tag to a table:" : 0, "table_tag" : { "a" : 1, "b" : 3 }, "You can index values using dots(.) ." : 0, "value" : "table_tag" . "b", "You can even assign a tag to a tag!" : 0, "This is a program that will be executed : " : { "Some_tag" : 18 }, "And an example to execute a tag:" : "This is a program that will be executed : ", "Though, if you want the value of a tag, you can use another way to do that." : 0, "value" : 'Example', "This assigns value to 1234." : 0, "Object Orientation in Powder:" : 0, "Define a class called class1" : 0, "class1" : { "fine" : { "a" : 1 } }, "Supports identity, properties(just define a tag in a class and call it), and attributes." : 0, "class2" : { "done" : { "b" : 2 } } }
Computational Class
Powder can easily compile to Smallfuck with an extension. > and < : these change the currently operating tag. * : We can define a flip table in Powder to do this: "flip" : { "1" : 0, "0" : 1 }, [ and ] : these are quite complicated. First, we have to define an if table: "if" : { "0" : "tag_after_matching_]", "1" : 0 }, The 1 merely does nothing. Then, we need to check the current cell to see if it is 0 (implementing [): "result" : "if".&"current_cell", Finally, we just have to implement a jump command. "jump" : "the_matching_[", Note that tags containing "matching" should be dynamically modified to make the jumps match. Also, we have to grant Smallfuck an infinite tape. We will implement a command that adds a cell to the tape(&): "cell" : 0, Where cell is different in each cell. Clearing a cell is simple: just set a cell to 0.
Examples
Hello, world!
{ "output" : { "1" : 72, "2" : 101, "3" : 108, "4" : 108, "5" : 111, "6" : 44, "7" : 32, "8" : 119, "9" : 111, "10" : 114, "11" : 108, "12" : 100 "13" : 33 } }
Cat program
{ "input" : 12341234, "Put your input here." : 0, "output" : 'input' }
Truth-machine
{ "if" : { "1" : "infinite_loop", "0" : "halt" } "input" : 1, "result" : "if".'input', "halt" : { "output" : 0 }, "infinite_loop" : { "output" : 1, "result" : "infinite_loop" } }
Deadfish non-interactive partial interpreter
This is a huge program (611 lines).
{ "cnt" : 0, "ac" : 0, "Put your code here." : 0, "input" : { "0" : 0, "1" : 0, "2" : 0, "3" : 0 }, "Note that this only implements a part of incrementing." : 0, "inc" : { "0" : 1, "1" : 2, "2" : 3, "3" : 4, "4" : 5, "5" : 6, "6" : 7, "7" : 8, "8" : 9, "9" : 10, "10" : 11, "11" : 12, "12" : 13, "13" : 14, "14" : 15, "15" : 16, "16" : 17, "17" : 18, "18" : 19, "19" : 20, "20" : 21, "21" : 22, "22" : 23, "23" : 24, "24" : 25, "25" : 26, "26" : 27, "27" : 28, "28" : 29, "29" : 30, "30" : 31, "31" : 32, "32" : 33, "33" : 34, "34" : 35, "35" : 36, "36" : 37, "37" : 38, "38" : 39, "39" : 40, "40" : 41, "41" : 42, "42" : 43, "43" : 44, "44" : 45, "45" : 46, "46" : 47, "47" : 48, "48" : 49, "49" : 50, "50" : 51, "51" : 52, "52" : 53, "53" : 54, "54" : 55, "55" : 56, "56" : 57, "57" : 58, "58" : 59, "59" : 60, "60" : 61, "61" : 62, "62" : 63, "63" : 64, "64" : 65, "65" : 66, "66" : 67, "67" : 68, "68" : 69, "69" : 70, "70" : 71, "71" : 72, "72" : 73, "73" : 74, "74" : 75, "75" : 76, "76" : 77, "77" : 78, "78" : 79, "79" : 80, "80" : 81, "81" : 82, "82" : 83, "83" : 84, "84" : 85, "85" : 86, "86" : 87, "87" : 88, "88" : 89, "89" : 90, "90" : 91, "91" : 92, "92" : 93, "93" : 94, "94" : 95, "95" : 96, "96" : 97, "97" : 98, "98" : 99, "99" : 100, "100" : 101, "101" : 102, "102" : 103, "103" : 104, "104" : 105, "105" : 106, "106" : 107, "107" : 108, "108" : 109, "109" : 110, "110" : 111, "111" : 112, "112" : 113, "113" : 114, "114" : 115, "115" : 116, "116" : 117, "117" : 118, "118" : 119, "119" : 120, "120" : 121, "121" : 122, "122" : 123, "123" : 124, "124" : 125, "125" : 126, "126" : 127, "127" : 128, "128" : 129, "129" : 130, "130" : 131, "131" : 132, "132" : 133, "133" : 134, "134" : 135, "135" : 136, "136" : 137, "137" : 138, "138" : 139, "139" : 140, "140" : 141, "141" : 142, "142" : 143, "143" : 144, "144" : 145, "145" : 146, "146" : 147, "147" : 148, "148" : 149, "149" : 150, "150" : 151, "151" : 152, "152" : 153, "153" : 154, "154" : 155, "155" : 156, "156" : 157, "157" : 158, "158" : 159, "159" : 160, "160" : 161, "161" : 162, "162" : 163, "163" : 164, "164" : 165, "165" : 166, "166" : 167, "167" : 168, "168" : 169, "169" : 170, "170" : 171, "171" : 172, "172" : 173, "173" : 174, "174" : 175, "175" : 176, "176" : 177, "177" : 178, "178" : 179, "179" : 180, "180" : 181, "181" : 182, "182" : 183, "183" : 184, "184" : 185, "185" : 186, "186" : 187, "187" : 188, "188" : 189, "189" : 190, "190" : 191, "191" : 192, "192" : 193, "193" : 194, "194" : 195, "195" : 196, "196" : 197, "197" : 198, "198" : 199, "199" : 200, "200" : 201, "201" : 202, "202" : 203, "203" : 204, "204" : 205, "205" : 206, "206" : 207, "207" : 208, "208" : 209, "209" : 210, "210" : 211, "211" : 212, "212" : 213, "213" : 214, "214" : 215, "215" : 216, "216" : 217, "217" : 218, "218" : 219, "219" : 220, "220" : 221, "221" : 222, "222" : 223, "223" : 224, "224" : 225, "225" : 226, "226" : 227, "227" : 228, "228" : 229, "229" : 230, "230" : 231, "231" : 232, "232" : 233, "233" : 234, "234" : 235, "235" : 236, "236" : 237, "237" : 238, "238" : 239, "239" : 240, "240" : 241, "241" : 242, "242" : 243, "243" : 244, "244" : 245, "245" : 246, "246" : 247, "247" : 248, "248" : 249, "249" : 250, "250" : 251, "251" : 252, "252" : 253, "253" : 254, "254" : 255, "255" : 0, "256" : 0, }, "Here is the decrement prodecedure (partial)" : 0, "dec" : { "257" : 0, "256" : 0, "255" : 254, "254" : 253, "253" : 252, "252" : 251, "251" : 250, "250" : 249, "249" : 248, "248" : 247, "247" : 246, "246" : 245, "245" : 244, "244" : 243, "243" : 242, "242" : 241, "241" : 240, "240" : 239, "239" : 238, "238" : 237, "237" : 236, "236" : 235, "235" : 234, "234" : 233, "233" : 232, "232" : 231, "231" : 230, "230" : 229, "229" : 228, "228" : 227, "227" : 226, "226" : 225, "225" : 224, "224" : 223, "223" : 222, "222" : 221, "221" : 220, "220" : 219, "219" : 218, "218" : 217, "217" : 216, "216" : 215, "215" : 214, "214" : 213, "213" : 212, "212" : 211, "211" : 210, "210" : 209, "209" : 208, "208" : 207, "207" : 206, "206" : 205, "205" : 204, "204" : 203, "203" : 202, "202" : 201, "201" : 200, "200" : 199, "199" : 198, "198" : 197, "197" : 196, "196" : 195, "195" : 194, "194" : 193, "193" : 192, "192" : 191, "191" : 190, "190" : 189, "189" : 188, "188" : 187, "187" : 186, "186" : 185, "185" : 184, "184" : 183, "183" : 182, "182" : 181, "181" : 180, "180" : 179, "179" : 178, "178" : 177, "177" : 176, "176" : 175, "175" : 174, "174" : 173, "173" : 172, "172" : 171, "171" : 170, "170" : 169, "169" : 168, "168" : 167, "167" : 166, "166" : 165, "165" : 164, "164" : 163, "163" : 162, "162" : 161, "161" : 160, "160" : 159, "159" : 158, "158" : 157, "157" : 156, "156" : 155, "155" : 154, "154" : 153, "153" : 152, "152" : 151, "151" : 150, "150" : 149, "149" : 148, "148" : 147, "147" : 146, "146" : 145, "145" : 144, "144" : 143, "143" : 142, "142" : 141, "141" : 140, "140" : 139, "139" : 138, "138" : 137, "137" : 136, "136" : 135, "135" : 134, "134" : 133, "133" : 132, "132" : 131, "131" : 130, "130" : 129, "129" : 128, "128" : 127, "127" : 126, "126" : 125, "125" : 124, "124" : 123, "123" : 122, "122" : 121, "121" : 120, "120" : 119, "119" : 118, "118" : 117, "117" : 116, "116" : 115, "115" : 114, "114" : 113, "113" : 112, "112" : 111, "111" : 110, "110" : 109, "109" : 108, "108" : 107, "107" : 106, "106" : 105, "105" : 104, "104" : 103, "103" : 102, "102" : 101, "101" : 100, "100" : 99, "99" : 98, "98" : 97, "97" : 96, "96" : 95, "95" : 94, "94" : 93, "93" : 92, "92" : 91, "91" : 90, "90" : 89, "89" : 88, "88" : 87, "87" : 86, "86" : 85, "85" : 84, "84" : 83, "83" : 82, "82" : 81, "81" : 80, "80" : 79, "79" : 78, "78" : 77, "77" : 76, "76" : 75, "75" : 74, "74" : 73, "73" : 72, "72" : 71, "71" : 70, "70" : 69, "69" : 68, "68" : 67, "67" : 66, "66" : 65, "65" : 64, "64" : 63, "63" : 62, "62" : 61, "61" : 60, "60" : 59, "59" : 58, "58" : 57, "57" : 56, "56" : 55, "55" : 54, "54" : 53, "53" : 52, "52" : 51, "51" : 50, "50" : 49, "49" : 48, "48" : 47, "47" : 46, "46" : 45, "45" : 44, "44" : 43, "43" : 42, "42" : 41, "41" : 40, "40" : 39, "39" : 38, "38" : 37, "37" : 36, "36" : 35, "35" : 34, "34" : 33, "33" : 32, "32" : 31, "31" : 30, "30" : 29, "29" : 28, "28" : 27, "27" : 26, "26" : 25, "25" : 24, "24" : 23, "23" : 22, "22" : 21, "21" : 20, "20" : 19, "19" : 18, "18" : 17, "17" : 16, "16" : 15, "15" : 14, "14" : 13, "13" : 12, "12" : 11, "11" : 10, "10" : 9, "9" : 8, "8" : 7, "7" : 6, "6" : 5, "5" : 4, "4" : 3, "3" : 2, "2" : 1, "1" : 0, "0" : 0 } "Implement a procedure to square the accumulator" : 0, "squ" : { "0" : 0, "1" : 1, "2" : 4, "3" : 9, "4" : 16, "5" : 25, "6" : 36, "7" : 49, "8" : 64, "9" : 81, "10" : 100, "11" : 121, "12" : 144, "13" : 169, "14" : 196, "15" : 225, "16" : 0, } "interpret the program (idso)" : 0, "interpret" { "105" : "increment_ac", "100" : "decrement_ac", "115" : "square_ac", "111" : "output_ac" } "i" : 0, "increment_ac" : { "ac" : "inc".'ac' } "d" : 0, "decrement_ac" : { "ac" : "dec".'ac' } "s" : 0, "square_ac" : { "ac" : "squ".'ac' } "o" : 0, "output_ac" : { "output" : 'ac' } "main loop " : 0, "forever" : { "Prompt(>> \n)" : 0, "output" : { "1" : 62, "2" : 62, "3" : 32, "4" : 10 } "interpret"."input".'cnt', "cnt" : "inc".'cnt', "return" : "forever" } }
Fibonacci sequence
This is limited in results.
{ "fib" : { "0" : 0, "1" : 1, "2" : 1, "3" : 2, "4" : 3, "5" : 5, "6" : 8, "7" : 13, "8" : 21, "9" : 34, "10" : 55, "11" : 89, "12" : 144, "13" : 233, "14" : 377, "15" : 610, "16" : 987, "17" : 1597, "18" : 2584, "19" : 4181, "20" : 6765, "21" : 10946, "22" : 17711, "23" : 28657, "24" : 46368, "25" : 75025, "26" : 121393, "27" : 196418, "28" : 317811, "29" : 514229, "30" : 832040, "31" : 1346269, "32" : 2178309, "33" : 3524578, "34" : 5702887, "35" : 9227465, "36" : 14930352, "37" : 24157817, "38" : 39088169, "39" : 63245986, "40" : 102334155, "41" : 165580141, "42" : 267914296, "43" : 433494437, "44" : 701408733, "45" : 1134903170, "46" : 1836311903, "47" : 2971215073, "48" : 4807526976, "49" : 7778742049, "50" : 12586269025, "51" : 20365011074, "52" : 32951280099, "53" : 53316291173, "54" : 86267571272, "55" : 139583862445, "56" : 225851433717, "57" : 365435296162, "58" : 591286729879, "59" : 956722026041, "60" : 1548008755920, "61" : 2504730781961, "62" : 4052739537881, "63" : 6557470319842, "64" : 10610209857723, "65" : 17167680177565, "66" : 27777890035288, "67" : 44945570212853, "68" : 72723460248141, "69" : 117669030460994, "70" : 190392490709135, "71" : 308061521170129, "72" : 498454011879264, "73" : 806515533049393, "74" : 1304969544928657, "75" : 2111485077978050, "76" : 3416454622906707, "77" : 5527939700884757, "78" : 8944394323791464, "79" : 14472334024676221, "80" : 23416728348467685, "81" : 37889062373143906, "82" : 61305790721611591, "83" : 99194853094755497, "84" : 160500643816367088, "85" : 259695496911122585, "86" : 420196140727489673, "87" : 679891637638612258, "88" : 1100087778366101931, "89" : 1779979416004714189, "90" : 2880067194370816120, "91" : 4660046610375530309, "92" : 7540113804746346429, "93" : 12200160415121876738, "94" : 19740274219868223167, "95" : 31940434634990099905, "96" : 51680708854858323072, "97" : 83621143489848422977, "98" : 135301852344706746049, "99" : 218922995834555169026, "100" : 354224848179261915075, "101" : 573147844013817084101, "102" : 927372692193078999176, "103" : 1500520536206896083277, "104" : 2427893228399975082453, "105" : 3928413764606871165730, "106" : 6356306993006846248183, "107" : 10284720757613717413913, "108" : 16641027750620563662096, "109" : 26925748508234281076009, "110" : 43566776258854844738105, "111" : 70492524767089125814114, "112" : 114059301025943970552219, "113" : 184551825793033096366333, "114" : 298611126818977066918552, "115" : 483162952612010163284885, "116" : 781774079430987230203437, "117" : 1264937032042997393488322, "118" : 2046711111473984623691759, "119" : 3311648143516982017180081, "120" : 5358359254990966640871840, "121" : 8670007398507948658051921, "122" : 14028366653498915298923761, "123" : 22698374052006863956975682, "124" : 36726740705505779255899443, "125" : 59425114757512643212875125, "126" : 96151855463018422468774568, "127" : 155576970220531065681649693, "128" : 251728825683549488150424261, "129" : 407305795904080553832073954, "130" : 659034621587630041982498215, "131" : 1066340417491710595814572169, "132" : 1725375039079340637797070384, "133" : 2791715456571051233611642553, "134" : 4517090495650391871408712937, "135" : 7308805952221443105020355490, "136" : 11825896447871834976429068427, "137" : 19134702400093278081449423917, "138" : 30960598847965113057878492344, "139" : 50095301248058391139327916261, "140" : 81055900096023504197206408605, "141" : 131151201344081895336534324866, "142" : 212207101440105399533740733471, "143" : 343358302784187294870275058337, "144" : 555565404224292694404015791808, "145" : 898923707008479989274290850145, "146" : 1454489111232772683678306641953, "147" : 2353412818241252672952597492098, "148" : 3807901929474025356630904134051, "149" : 6161314747715278029583501626149, "150" : 9969216677189303386214405760200, "151" : 16130531424904581415797907386349, "152" : 26099748102093884802012313146549, "153" : 42230279526998466217810220532898, "154" : 68330027629092351019822533679447, "155" : 110560307156090817237632754212345, "156" : 178890334785183168257455287891792, "157" : 289450641941273985495088042104137, "158" : 468340976726457153752543329995929, "159" : 757791618667731139247631372100066, "160" : 1226132595394188293000174702095995, "161" : 1983924214061919432247806074196061, "162" : 3210056809456107725247980776292056, "163" : 5193981023518027157495786850488117, "164" : 8404037832974134882743767626780173, "165" : 13598018856492162040239554477268290, "166" : 22002056689466296922983322104048463, "167" : 35600075545958458963222876581316753, "168" : 57602132235424755886206198685365216, "169" : 93202207781383214849429075266681969, "170" : 150804340016807970735635273952047185, "171" : 244006547798191185585064349218729154, "172" : 394810887814999156320699623170776339, "173" : 638817435613190341905763972389505493, "174" : 1033628323428189498226463595560281832, "175" : 1672445759041379840132227567949787325, "176" : 2706074082469569338358691163510069157, "177" : 4378519841510949178490918731459856482, "178" : 7084593923980518516849609894969925639, "179" : 11463113765491467695340528626429782121, "180" : 18547707689471986212190138521399707760, "181" : 30010821454963453907530667147829489881, "182" : 48558529144435440119720805669229197641, "183" : 78569350599398894027251472817058687522, "184" : 127127879743834334146972278486287885163, "185" : 205697230343233228174223751303346572685, "186" : 332825110087067562321196029789634457848, "187" : 538522340430300790495419781092981030533, "188" : 871347450517368352816615810882615488381, "189" : 1409869790947669143312035591975596518914, "190" : 2281217241465037496128651402858212007295, "191" : 3691087032412706639440686994833808526209, "192" : 5972304273877744135569338397692020533504, "193" : 9663391306290450775010025392525829059713, "194" : 15635695580168194910579363790217849593217, "195" : 25299086886458645685589389182743678652930, "196" : 40934782466626840596168752972961528246147, "197" : 66233869353085486281758142155705206899077, "198" : 107168651819712326877926895128666735145224, "199" : 173402521172797813159685037284371942044301, "200" : 280571172992510140037611932413038677189525, }, "input" : 5, "output" : "fib".'input' }
A simple adder code snippet
In this snippet, you can only add using 0, 1, and 2. Implementing a whole adder would be impossible and tedious.
{ "add" : { "0" : { "0" : 0 "1" : 1 "2" : 2 } "1" : { "0" : 1 "1" : 2 "2" : 3 } "2" : { "0" : 2 "1" : 3 "2" : 4 } } }
Factorial
This is a limited factorial function.
{ "fac" : { "1" : 1, "2" : 2, "3" : 6, "4" : 24, "5" : 120, "6" : 720, "7" : 5040, "8" : 40320, "9" : 362880, "10" : 3628800, "11" : 39916800, "12" : 479001600, "13" : 6227020800, "14" : 87178291200, "15" : 1307674368000, "16" : 20922789888000, "17" : 355687428096000, "18" : 6402373705728000, "19" : 121645100408832000, "20" : 2432902008176640000, "21" : 51090942171709440000, "22" : 1124000727777607680000, "23" : 25852016738884976640000, "24" : 620448401733239439360000, "25" : 15511210043330985984000000, "26" : 403291461126605635584000000, "27" : 10888869450418352160768000000, "28" : 304888344611713860501504000000, "29" : 8841761993739701954543616000000, "30" : 265252859812191058636308480000000, "31" : 8222838654177922817725562880000000, "32" : 263130836933693530167218012160000000, "33" : 8683317618811886495518194401280000000, "34" : 295232799039604140847618609643520000000, "35" : 10333147966386144929666651337523200000000, "36" : 371993326789901217467999448150835200000000, "37" : 13763753091226345046315979581580902400000000, "38" : 523022617466601111760007224100074291200000000, "39" : 20397882081197443358640281739902897356800000000, "40" : 815915283247897734345611269596115894272000000000, "41" : 33452526613163807108170062053440751665152000000000, "42" : 1405006117752879898543142606244511569936384000000000, "43" : 60415263063373835637355132068513997507264512000000000, "44" : 2658271574788448768043625811014615890319638528000000000, "45" : 119622220865480194561963161495657715064383733760000000000, "46" : 5502622159812088949850305428800254892961651752960000000000, "47" : 258623241511168180642964355153611979969197632389120000000000, "48" : 12413915592536072670862289047373375038521486354677760000000000, "49" : 608281864034267560872252163321295376887552831379210240000000000, "50" : 30414093201713378043612608166064768844377641568960512000000000000, "51" : 1551118753287382280224243016469303211063259720016986112000000000000, "52" : 80658175170943878571660636856403766975289505440883277824000000000000, "53" : 4274883284060025564298013753389399649690343788366813724672000000000000, "54" : 230843697339241380472092742683027581083278564571807941132288000000000000, "55" : 12696403353658275925965100847566516959580321051449436762275840000000000000, "56" : 710998587804863451854045647463724949736497978881168458687447040000000000000, "57" : 40526919504877216755680601905432322134980384796226602145184481280000000000000, "58" : 2350561331282878571829474910515074683828862318181142924420699914240000000000000, "59" : 138683118545689835737939019720389406345902876772687432540821294940160000000000000, "60" : 8320987112741390144276341183223364380754172606361245952449277696409600000000000000, "61" : 507580213877224798800856812176625227226004528988036003099405939480985600000000000000, "62" : 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000, "63" : 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000, "64" : 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000, "65" : 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000, "66" : 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000, "67" : 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000, "68" : 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000, "69" : 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000, "70" : 11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000, "71" : 850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000, "72" : 61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000, "73" : 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000, "74" : 330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000, "75" : 24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000, "76" : 1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000, "77" : 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000, "78" : 11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000, "79" : 894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000, "80" : 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000, "81" : 5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000, "82" : 475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000, "83" : 39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000, "84" : 3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000, "85" : 281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000, "86" : 24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000, "87" : 2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000, "88" : 185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000, "89" : 16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000, "90" : 1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000, "91" : 135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000, "92" : 12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000, "93" : 1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000, "94" : 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000, "95" : 10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000, "96" : 991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000, "97" : 96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000, "98" : 9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000, "99" : 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000, "100" : 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 }, "input" : 123, "output" : "fac".'input' }