Wasteful, equidigital and frugal numbers: Difference between revisions

(Realize in F#)
Line 162:
</lang>
Output is the same as Wren example.
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<lang Mathematica>ClearAll[FactorIntegerDigits, ID, Stats]
FactorIntegerDigits[n_] := Module[{},
fi = FactorInteger[n];
fi[[All, 1]] //= Map[IntegerLength];
fi[[All, 2]] //= Map[If[# == 1, 0, IntegerLength[#]] &];
Total[Flatten[fi]]
]
Stats[l_List] := Module[{},
Print["10000: ", l[[10^4]]];
Print["First 50: ", l[[;; 50]]];
Print["Below 10^6: ", Length[Select[l, LessThan[10^6]]]];
]
ID[n_] := {IntegerLength[n], FactorIntegerDigits[n]}
bla = {#, ID[#]} & /@ Range[2000000];
wasteful = Select[bla, #[[2, 1]] < #[[2, 2]] &][[All, 1]];
equidigital = Select[bla, #[[2, 1]] == #[[2, 2]] &][[All, 1]];
frugal = Select[bla, #[[2, 1]] > #[[2, 2]] &][[All, 1]];
Print["Wasteful"]
Stats[wasteful]
 
Print["Equidigital"]
Stats[equidigital]
 
Print["Frugal"]
Stats[frugal]</lang>
{{out}}
<pre>Wasteful
10000: 14346
First 50: {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}
Below 10^6: 831231
 
Equidigital
10000: 33769
First 50: {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}
Below 10^6: 165645
 
Frugal
10000: 1953125
First 50: {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}
Below 10^6: 3123</pre>
 
=={{header|Perl}}==
1,111

edits