Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue