Wasteful, equidigital and frugal numbers: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: Add Ruby) |
|||
Line 459: | Line 459: | ||
Economical: 3,428</pre> |
Economical: 3,428</pre> |
||
=={{header|Ruby}}== |
|||
<syntaxhighlight lang="ruby">require 'prime' |
|||
[10,11].each do |base| |
|||
res = Hash.new{|h, k| h[k] = [] } |
|||
puts "\nBase: #{base}" |
|||
(1..).each do |n| |
|||
pd = n.prime_division |
|||
pd = pd.map{|pr| pr.pop if pr.last == 1; pr} |
|||
pd = [1] if n == 1 |
|||
selector = n.digits(base).size <=> pd.flatten.sum{|m| m.digits(base).size} # -1,0,1 |
|||
res[[:Equidigital, :Frugal, :Wasteful][selector]] << n |
|||
break if res.values.all?{|v| v.size >= 10000} |
|||
end |
|||
res.each do |k, v| |
|||
puts "#{k}:" |
|||
puts "10000th: #{v[9999]}; count: #{v.count{|n| n < 1_000_000}}" |
|||
p v.first(50) |
|||
end |
|||
end |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Base: 10 |
|||
Equidigital: |
|||
10000st: 33769 count: 165645 |
|||
[1, 2, 3, 5, 7, 10, 11, 13, 14, 15, 16, 17, 19, 21, 23, 25, 27, 29, 31, 32, 35, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 105, 106, 107, 109, 111, 112, 113, 115, 118, 119] |
|||
Wasteful: |
|||
10000st: 14346 count: 831231 |
|||
[4, 6, 8, 9, 12, 18, 20, 22, 24, 26, 28, 30, 33, 34, 36, 38, 39, 40, 42, 44, 45, 46, 48, 50, 51, 52, 54, 55, 56, 57, 58, 60, 62, 63, 65, 66, 68, 69, 70, 72, 74, 75, 76, 77, 78, 80, 82, 84, 85, 86] |
|||
Frugal: |
|||
10000st: 1953125 count: 3123 |
|||
[125, 128, 243, 256, 343, 512, 625, 729, 1024, 1029, 1215, 1250, 1280, 1331, 1369, 1458, 1536, 1681, 1701, 1715, 1792, 1849, 1875, 2048, 2187, 2197, 2209, 2401, 2560, 2809, 3125, 3481, 3584, 3645, 3721, 4096, 4374, 4375, 4489, 4802, 4913, 5041, 5103, 5329, 6241, 6250, 6561, 6859, 6889, 7203] |
|||
Base: 11 |
|||
Equidigital: |
|||
10000st: 33203 count: 200710 |
|||
[1, 2, 3, 5, 7, 11, 13, 14, 15, 16, 17, 19, 21, 23, 25, 27, 29, 31, 32, 35, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109, 113, 121, 122, 123, 127, 129, 131, 133, 134] |
|||
Wasteful: |
|||
10000st: 12890 count: 795861 |
|||
[4, 6, 8, 9, 10, 12, 18, 20, 22, 24, 26, 28, 30, 33, 34, 36, 38, 39, 40, 42, 44, 45, 46, 48, 50, 51, 52, 54, 55, 56, 57, 58, 60, 62, 63, 65, 66, 68, 69, 70, 72, 74, 75, 76, 77, 78, 80, 82, 84, 85] |
|||
Frugal: |
|||
10000st: 2659171 count: 3428 |
|||
[125, 128, 243, 256, 343, 512, 625, 729, 1024, 1331, 1369, 1458, 1536, 1681, 1701, 1715, 1792, 1849, 1875, 2048, 2187, 2197, 2209, 2401, 2560, 2809, 3072, 3125, 3481, 3584, 3645, 3721, 4096, 4374, 4375, 4489, 4802, 4913, 5041, 5103, 5120, 5329, 6241, 6250, 6561, 6859, 6889, 7168, 7203, 7921] |
|||
</pre> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |
||
{{libheader|Wren-math}} |
{{libheader|Wren-math}} |