Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
30
Task/Humble-numbers/BBC-BASIC/humble-numbers.basic
Normal file
30
Task/Humble-numbers/BBC-BASIC/humble-numbers.basic
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
MaxDigs%=8
|
||||
DIM Humble%(MaxDigs% - 1)
|
||||
I%=1
|
||||
@%=4
|
||||
|
||||
PRINT "The first 50 humble numbers:"
|
||||
WHILE TRUE
|
||||
IF FNIsHumble(I%) THEN
|
||||
IF C% < 50 PRINT ;I% " ";
|
||||
C%+=1
|
||||
S%=LENSTR$I%
|
||||
IF S% > MaxDigs% EXIT WHILE
|
||||
Humble%(S%-1)+=1
|
||||
ENDIF
|
||||
I%+=1
|
||||
ENDWHILE
|
||||
|
||||
PRINT ''"Of the first ";C% " humble numbers:"
|
||||
FOR I%=0 TO MaxDigs% - 1
|
||||
PRINT Humble%(I%) " have ";I% + 1 LEFT$(" digits", I% + 6)
|
||||
NEXT
|
||||
END
|
||||
|
||||
DEF FNIsHumble(i%)
|
||||
IF i% <= 1 THEN =TRUE
|
||||
IF i% MOD 2 == 0 THEN =FNIsHumble(i% / 2)
|
||||
IF i% MOD 3 == 0 THEN =FNIsHumble(i% / 3)
|
||||
IF i% MOD 5 == 0 THEN =FNIsHumble(i% / 5)
|
||||
IF i% MOD 7 == 0 THEN =FNIsHumble(i% / 7)
|
||||
=FALSE
|
||||
39
Task/Humble-numbers/EasyLang/humble-numbers.easy
Normal file
39
Task/Humble-numbers/EasyLang/humble-numbers.easy
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
fastfunc humble i .
|
||||
if i <= 1
|
||||
return 1
|
||||
.
|
||||
if i mod 2 = 0
|
||||
return humble (i / 2)
|
||||
.
|
||||
if i mod 3 = 0
|
||||
return humble (i / 3)
|
||||
.
|
||||
if i mod 5 = 0
|
||||
return humble (i / 5)
|
||||
.
|
||||
if i mod 7 = 0
|
||||
return humble (i / 7)
|
||||
.
|
||||
return 0
|
||||
.
|
||||
fastfunc next_humble n .
|
||||
repeat
|
||||
n += 1
|
||||
until humble n = 1
|
||||
.
|
||||
return n
|
||||
.
|
||||
len arr[] 9
|
||||
while cnt < 5193
|
||||
n = next_humble n
|
||||
arr[log10 n + 1] += 1
|
||||
cnt += 1
|
||||
if cnt <= 50
|
||||
write n & " "
|
||||
.
|
||||
.
|
||||
print ""
|
||||
print ""
|
||||
for i to 9
|
||||
print arr[i] & " with " & i & " digits"
|
||||
.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import "/fmt" for Fmt
|
||||
import "/math" for Int, Nums
|
||||
import "/sort" for Find
|
||||
import "./fmt" for Fmt
|
||||
import "./math" for Nums
|
||||
import "./sort" for Find
|
||||
|
||||
var humble = Fn.new { |n|
|
||||
var h = List.filled(n, 0)
|
||||
|
|
@ -40,9 +40,9 @@ var h = humble.call(n)
|
|||
System.print("The first 50 humble numbers are:")
|
||||
System.print(h[0..49])
|
||||
|
||||
var f = Find.all(h, Int.maxSafe) // binary search
|
||||
var f = Find.all(h, Num.maxSafeInteger) // binary search
|
||||
var maxUsed = f[0] ? f[2].min + 1 : f[2].min
|
||||
var maxDigits = 16 // Int.maxSafe (2^53 -1) has 16 digits
|
||||
var maxDigits = 16 // Num.maxSafeInteger (2^53 -1) has 16 digits
|
||||
var counts = List.filled(maxDigits + 1, 0)
|
||||
var digits = 1
|
||||
var pow10 = 10
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue