40 lines
919 B
Text
40 lines
919 B
Text
program jacobsthal_numbers;
|
|
print("First 30 Jacobsthal numbers:");
|
|
printseq([j n : n in [0..29]]);
|
|
print;
|
|
|
|
print("First 30 Jacobsthal-Lucas numbers:");
|
|
printseq([jl n : n in [0..29]]);
|
|
print;
|
|
|
|
print("First 20 Jacobsthal oblong numbers:");
|
|
printseq([jo n : n in [0..19]]);
|
|
print;
|
|
|
|
print("First 10 Jacobsthal primes:");
|
|
printseq([j n : n in [0..31] | prime j n]);
|
|
|
|
proc printseq(seq);
|
|
loop for n in seq do
|
|
nprint(lpad(str n, 14));
|
|
if (i +:= 1) mod 5 = 0 then print; end if;
|
|
end loop;
|
|
end proc;
|
|
|
|
op j(n);
|
|
return (2**n - (-1)**n) div 3;
|
|
end op;
|
|
|
|
op jl(n);
|
|
return 2**n + (-1)**n;
|
|
end op;
|
|
|
|
op jo(n);
|
|
return j n * j (n+1);
|
|
end op;
|
|
|
|
op prime(n);
|
|
if n<=4 then return n in {2,3}; end if;
|
|
return not exists d in [2..floor sqrt n] | n mod d = 0;
|
|
end op;
|
|
end program;
|