Esthetic numbers: Difference between revisions

JavaScript added
m (Change to task status)
(JavaScript added)
Line 2,613:
............
123456789898987898 123456789898989876 123456789898989878 123456789898989898 </pre>
 
=={{header|JavaScript}}==
<lang javascript>
function isEsthetic(inp, base = 10) {
let arr = inp.toString(base).split('');
if (arr.length == 1) return false;
for (let i = 0; i < arr.length; i++)
arr[i] = parseInt(arr[i], base);
for (i = 0; i < arr.length-1; i++)
if (Math.abs(arr[i]-arr[i+1]) !== 1) return false;
return true;
}
 
function collectEsthetics(base, range) {
let out = [], x;
if (range) {
for (x = range[0]; x < range[1]; x++)
if (isEsthetic(x)) out.push(x);
return out;
} else {
x = 1;
while (out.length < base*6) {
s = x.toString(base);
if (isEsthetic(s, base)) out.push(s.toUpperCase());
x++;
}
return out.slice(base*4);
}
}
 
// main
let d = new Date();
for (let x = 2; x <= 36; x++) { // we put b17 .. b36 on top, because we can
console.log(`${x}:`);
console.log( collectEsthetics(x),
(new Date() - d) / 1000 + ' s');
}
console.log( collectEsthetics(10, [1000, 9999]),
(new Date() - d) / 1000 + ' s' );
 
console.log( collectEsthetics(10, [1e8, 1.3e8]),
(new Date() - d) / 1000 + ' s' );
</lang>
{{out}}<pre>
2:
Array(4) [ "1010101010", "10101010101", "101010101010", "1010101010101" ]
0.009 s
3:
Array(6) [ "2121", "10101", "10121", "12101", "12121", "21010" ]
0.01 s
4:
Array(8) [ "1212", "1232", "2101", "2121", "2123", "2321", "2323", "3210" ]
0.011 s
5:
Array(10) [ "1012", "1210", "1212", "1232", "1234", "2101", "2121", "2123", "2321", "2323" ]
0.013
6:
Array(12) [ "545", "1010", "1012", "1210", "1212", "1232", "1234", "2101", "2121", "2123", … ]
0.015 s
7:
Array(14) [ "565", "654", "656", "1010", "1012", "1210", "1212", "1232", "1234", "2101", … ]
0.017 s
8:
Array(16) [ "654", "656", "676", "765", "767", "1010", "1012", "1210", "1212", "1232", … ]
0.018 s
9:
Array(18) [ "676", "678", "765", "767", "787", "876", "878", "1010", "1012", "1210", … ]
0.02 s
10:
Array(20) [ "765", "767", "787", "789", "876", "878", "898", "987", "989", "1010", … ]
0.021 s
11:
Array(22) [ "787", "789", "876", "878", "898", "89A", "987", "989", "9A9", "A98", … ]
0.023 s
12:
Array(24) [ "876", "878", "898", "89A", "987", "989", "9A9", "9AB", "A98", "A9A", … ]
0.026 s
13:
Array(26) [ "898", "89A", "987", "989", "9A9", "9AB", "A98", "A9A", "ABA", "ABC", … ]
0.028 s
14:
Array(28) [ "987", "989", "9A9", "9AB", "A98", "A9A", "ABA", "ABC", "BA9", "BAB", … ]
0.031 s
15:
Array(30) [ "9A9", "9AB", "A98", "A9A", "ABA", "ABC", "BA9", "BAB", "BCB", "BCD", … ]
0.035 s
16:
Array(32) [ "A98", "A9A", "ABA", "ABC", "BA9", "BAB", "BCB", "BCD", "CBA", "CBC", … ]
0.04 s
17:
Array(34) [ "ABA", "ABC", "BA9", "BAB", "BCB", "BCD", "CBA", "CBC", "CDC", "CDE", … ]
0.044 s
18:
Array(36) [ "BA9", "BAB", "BCB", "BCD", "CBA", "CBC", "CDC", "CDE", "DCB", "DCD", … ]
0.05 s
19:
Array(38) [ "BCB", "BCD", "CBA", "CBC", "CDC", "CDE", "DCB", "DCD", "DED", "DEF", … ]
0.056 s
20:
Array(40) [ "CBA", "CBC", "CDC", "CDE", "DCB", "DCD", "DED", "DEF", "EDC", "EDE", … ]
0.063 s
21:
Array(42) [ "CDC", "CDE", "DCB", "DCD", "DED", "DEF", "EDC", "EDE", "EFE", "EFG", … ]
0.072 s
22:
Array(44) [ "DCB", "DCD", "DED", "DEF", "EDC", "EDE", "EFE", "EFG", "FED", "FEF", … ]
0.081 s
23:
Array(46) [ "DED", "DEF", "EDC", "EDE", "EFE", "EFG", "FED", "FEF", "FGF", "FGH", … ]
0.092 s
24:
Array(48) [ "EDC", "EDE", "EFE", "EFG", "FED", "FEF", "FGF", "FGH", "GFE", "GFG", … ]
0.103 s
25:
Array(50) [ "EFE", "EFG", "FED", "FEF", "FGF", "FGH", "GFE", "GFG", "GHG", "GHI", … ]
0.116 s
26:
Array(52) [ "FED", "FEF", "FGF", "FGH", "GFE", "GFG", "GHG", "GHI", "HGF", "HGH", … ]
0.132 s
27:
Array(54) [ "FGF", "FGH", "GFE", "GFG", "GHG", "GHI", "HGF", "HGH", "HIH", "HIJ", … ]
0.147 s
28:
Array(56) [ "GFE", "GFG", "GHG", "GHI", "HGF", "HGH", "HIH", "HIJ", "IHG", "IHI", … ]
0.169 s
29:
Array(58) [ "GHG", "GHI", "HGF", "HGH", "HIH", "HIJ", "IHG", "IHI", "IJI", "IJK", … ]
0.191 s
30:
Array(60) [ "HGF", "HGH", "HIH", "HIJ", "IHG", "IHI", "IJI", "IJK", "JIH", "JIJ", … ]
0.224 s
31:
Array(62) [ "HIH", "HIJ", "IHG", "IHI", "IJI", "IJK", "JIH", "JIJ", "JKJ", "JKL", … ]
0.257 s
32:
Array(64) [ "IHG", "IHI", "IJI", "IJK", "JIH", "JIJ", "JKJ", "JKL", "KJI", "KJK", … ]
0.291 s
33:
Array(66) [ "IJI", "IJK", "JIH", "JIJ", "JKJ", "JKL", "KJI", "KJK", "KLK", "KLM", … ]
0.327 s
34:
Array(68) [ "JIH", "JIJ", "JKJ", "JKL", "KJI", "KJK", "KLK", "KLM", "LKJ", "LKL", … ]
0.373 s
35:
Array(70) [ "JKJ", "JKL", "KJI", "KJK", "KLK", "KLM", "LKJ", "LKL", "LML", "LMN", … ]
0.409 s
36:
Array(72) [ "KJI", "KJK", "KLK", "KLM", "LKJ", "LKL", "LML", "LMN", "MLK", "MLM", … ]
0.465 s
Array(61) [ 1010, 1012, 1210, 1212, 1232, 1234, 2101, 2121, 2123, 2321, … ]
0.47 s
Array(126) [ 101010101, 101010121, 101010123, 101012101, 101012121, 101012123, 101012321, 101012323, 101012343, 101012345, … ]
14.204 s
</pre>
 
=={{header|Julia}}==