Humble numbers: Difference between revisions
Content deleted Content added
m used a consistent category for prime numbers. |
|||
Line 242: | Line 242: | ||
return 0; |
return 0; |
||
}</lang> |
|||
{{out}} |
|||
<pre>1 2 3 4 5 6 7 8 9 10 12 14 15 16 18 20 21 24 25 27 28 30 32 35 36 40 42 45 48 49 50 54 56 60 63 64 70 72 75 80 81 84 90 96 98 100 105 108 112 120 |
|||
Of the first 32767 humble numbers: |
|||
9 have 1 digits |
|||
36 have 2 digits |
|||
95 have 3 digits |
|||
197 have 4 digits |
|||
356 have 5 digits |
|||
579 have 6 digits |
|||
882 have 7 digits |
|||
1272 have 8 digits |
|||
1767 have 9 digits</pre> |
|||
=={{header|C#|C sharp}}== |
|||
{{trans|D}} |
|||
<lang csharp>using System; |
|||
using System.Collections.Generic; |
|||
namespace HumbleNumbers { |
|||
class Program { |
|||
static bool IsHumble(int i) { |
|||
if (i <= 1) return true; |
|||
if (i % 2 == 0) return IsHumble(i / 2); |
|||
if (i % 3 == 0) return IsHumble(i / 3); |
|||
if (i % 5 == 0) return IsHumble(i / 5); |
|||
if (i % 7 == 0) return IsHumble(i / 7); |
|||
return false; |
|||
} |
|||
static void Main() { |
|||
var limit = short.MaxValue; |
|||
Dictionary<int, int> humble = new Dictionary<int, int>(); |
|||
var count = 0; |
|||
var num = 1; |
|||
while (count < limit) { |
|||
if (IsHumble(num)) { |
|||
var str = num.ToString(); |
|||
var len = str.Length; |
|||
if (humble.ContainsKey(len)) { |
|||
humble[len]++; |
|||
} else { |
|||
humble[len] = 1; |
|||
} |
|||
if (count < 50) Console.Write("{0} ", num); |
|||
count++; |
|||
} |
|||
num++; |
|||
} |
|||
Console.WriteLine("\n"); |
|||
Console.WriteLine("Of the first {0} humble numbers:", count); |
|||
num = 1; |
|||
while (num < humble.Count - 1) { |
|||
if (humble.ContainsKey(num)) { |
|||
var c = humble[num]; |
|||
Console.WriteLine("{0,5} have {1,2} digits", c, num); |
|||
num++; |
|||
} else { |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}</lang> |
}</lang> |
||
{{out}} |
{{out}} |