Data update

This commit is contained in:
Ingy döt Net 2026-02-01 16:33:20 -08:00
parent 5150844a7d
commit 4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions

View file

@ -1,43 +1,63 @@
fastfunc digsum h .
while h > 0
sum += h mod 10
ds += h mod 10
h = h div 10
.
return sum
return ds
.
fastfunc isself start i .
j = start
sum = digsum start
fastfunc isself j i .
sum = j + digsum j
while j < i
if j + sum = i : return 0
sum += 1
if sum = i : return 0
sum += 2
j += 1
if j mod 10 = 0
sum = digsum j
if j mod 100 <> 0
sum -= 9
else
sum = j + digsum j
.
if sum + 18 <= i or sum > i or (sum + i) mod 2 <> 0
j += 9
sum += 18
.
.
.
return 1
.
proc main .
i = 1
po = 10
digits = 1
global pow10 offs .
fastfunc next ind .
repeat
ind += 1
if ind = pow10
pow10 *= 10
offs += 9
.
until isself (ind - offs) ind = 1
.
return ind
.
proc first50 .
pow10 = 10
offs = 9
repeat
start = higher (i - offs) 0
if isself start i = 1
cnt += 1
if cnt <= 50 : write i & " "
.
until cnt = 100000000
i += 1
if i mod po = 0
po *= 10
digits += 1
offs = digits * 9
.
ind = next ind
cnt += 1
write ind & " "
until cnt = 50
.
print ""
print i
.
main
first50
#
fastfunc getselfnr lim .
pow10 = 10
offs = 9
repeat
ind = next ind
cnt += 1
until cnt = lim
.
return ind
.
print getselfnr 100000000

View file

@ -6,7 +6,7 @@ local function done_after_adding(interval, n)
-- Advance to the next self number in the sequence, append it to the output if required, indicate if finished.
for _ = 1, n do
current_self += interval
++counter
counter += 1
if counter >= start_index then
output:insert(current_self)
end