Data update
This commit is contained in:
parent
61b93a2cd1
commit
5af6d93694
858 changed files with 20572 additions and 2082 deletions
45
Task/Duffinian-numbers/BCPL/duffinian-numbers.bcpl
Normal file
45
Task/Duffinian-numbers/BCPL/duffinian-numbers.bcpl
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
get "libhdr"
|
||||
|
||||
let calcsigmas(sig, n) be
|
||||
$( sig!0 := 0
|
||||
for i = 0 to n do sig!i := 0
|
||||
for i = 1 to n/2 do
|
||||
$( let j = i
|
||||
while 0 < j <= n do
|
||||
$( sig!j := sig!j + i
|
||||
j := j + i
|
||||
$)
|
||||
$)
|
||||
$)
|
||||
|
||||
let gcd(m, n) = n=0 -> m, gcd(n, m rem n)
|
||||
|
||||
let duff(sig, n) = sig!n > n+1 & gcd(n, sig!n) = 1
|
||||
let triple(sig, n) = duff(sig, n) & duff(sig, n+1) & duff(sig, n+2)
|
||||
|
||||
let first(sig, f, max, cb) be
|
||||
$( let n = 0
|
||||
for i = 1 to max
|
||||
$( n := n+1 repeatuntil f(sig, n)
|
||||
cb(i, n)
|
||||
$)
|
||||
$)
|
||||
|
||||
let start() be
|
||||
$( let showsingle(i, n) be
|
||||
$( writef("%I4", n)
|
||||
if i rem 10=0 then wrch('*N')
|
||||
$)
|
||||
|
||||
let showtriple(i, n) be writef("%I2: %I6 %I6 %I6*N", i, n, n+1, n+2)
|
||||
|
||||
let sig = getvec(20000)
|
||||
calcsigmas(sig, 20000)
|
||||
|
||||
writes("First 50 Duffinian numbers:*N")
|
||||
first(sig, duff, 50, showsingle)
|
||||
|
||||
writes("*NFirst 15 Duffinian triples:*N")
|
||||
first(sig, triple, 15, showtriple)
|
||||
freevec(sig)
|
||||
$)
|
||||
Loading…
Add table
Add a link
Reference in a new issue