Jacobsthal numbers: Difference between revisions
Content added Content deleted
m (Added language identifier.) |
No edit summary |
||
Line 1,201: | Line 1,201: | ||
95562442332919646317117537304253622533190207882011713489066201641121786503686867002917439712921903606443 |
95562442332919646317117537304253622533190207882011713489066201641121786503686867002917439712921903606443 |
||
</pre> |
</pre> |
||
=={{header|Delphi}}== |
|||
{{works with|Delphi|6.0}} |
|||
{{libheader|SysUtils,StdCtrls}} |
|||
<syntaxhighlight lang="Delphi"> |
|||
procedure GetJacobsthalNum(Lucas: boolean; Max: integer; var IA: TInt64DynArray); |
|||
{Get Jacobsthal number sequence. If Lucas is true do Lucal variation} |
|||
var I: integer; |
|||
begin |
|||
SetLength(IA,Max); |
|||
{Lucas starts sequence with 2 instead of 0} |
|||
if Lucas then IA[0]:=2 else IA[0]:=0; |
|||
IA[1]:=1; |
|||
{Calculate Nn = Nn-1 + 2 Nn-2} |
|||
for I:=2 to Max-1 do |
|||
IA[I]:=IA[I-1] + 2 * IA[I-2]; |
|||
end; |
|||
procedure GetJacobsthalOblong(Max: integer; var IA: TInt64DynArray); |
|||
{Jacobsthal Oblong numbers is Nn = Jn x Jn=1 where J = Jacobsthal numbers} |
|||
var IA2: TInt64DynArray; |
|||
var I: integer; |
|||
begin |
|||
GetJacobsthalNum(False,Max+1,IA2); |
|||
SetLength(IA,Max); |
|||
for I:=0 to High(IA2)-1 do |
|||
begin |
|||
IA[I]:=IA2[I] * IA2[I+1]; |
|||
end; |
|||
end; |
|||
procedure ShowJacobsthalNumbers(Memo: TMemo); |
|||
var I: integer; |
|||
var IA: TInt64DynArray; |
|||
var S: string; |
|||
begin |
|||
GetJacobsthalNum(False,30,IA); |
|||
Memo.Lines.Add('First 30 Jacobsthal Numbers'); |
|||
S:=''; |
|||
for I:=0 to High(IA) do |
|||
begin |
|||
S:=S+Format('%12.0n',[IA[I]+0.0]); |
|||
if (I mod 5)=4 then S:=S+CRLF; |
|||
end; |
|||
Memo.Lines.Add(S); |
|||
Memo.Lines.Add(''); |
|||
GetJacobsthalNum(True,30,IA); |
|||
Memo.Lines.Add('First 30 Jacobsthal-Lucas Numbers'); |
|||
S:=''; |
|||
for I:=0 to High(IA) do |
|||
begin |
|||
S:=S+Format('%14.0n',[IA[I]+0.0]); |
|||
if (I mod 4)=3 then S:=S+CRLF; |
|||
end; |
|||
Memo.Lines.Add(S); |
|||
Memo.Lines.Add(''); |
|||
GetJacobsthalOblong(20,IA); |
|||
Memo.Lines.Add('First 20 Jacobsthal-Oblong Numbers'); |
|||
S:=''; |
|||
for I:=0 to High(IA) do |
|||
begin |
|||
S:=S+Format('%18.0n',[IA[I]+0.0]); |
|||
if (I mod 3)=2 then S:=S+CRLF; |
|||
end; |
|||
Memo.Lines.Add(S); |
|||
end; |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
First 30 Jacobsthal Numbers |
|||
0 1 1 3 5 |
|||
11 21 43 85 171 |
|||
341 683 1,365 2,731 5,461 |
|||
10,923 21,845 43,691 87,381 174,763 |
|||
349,525 699,051 1,398,101 2,796,203 5,592,405 |
|||
11,184,811 22,369,621 44,739,243 89,478,485 178,956,971 |
|||
First 30 Jacobsthal-Lucas Numbers |
|||
2 1 5 7 |
|||
17 31 65 127 |
|||
257 511 1,025 2,047 |
|||
4,097 8,191 16,385 32,767 |
|||
65,537 131,071 262,145 524,287 |
|||
1,048,577 2,097,151 4,194,305 8,388,607 |
|||
16,777,217 33,554,431 67,108,865 134,217,727 |
|||
268,435,457 536,870,911 |
|||
First 20 Jacobsthal-Oblong Numbers |
|||
0 1 3 |
|||
15 55 231 |
|||
903 3,655 14,535 |
|||
58,311 232,903 932,295 |
|||
3,727,815 14,913,991 59,650,503 |
|||
238,612,935 954,429,895 3,817,763,271 |
|||
15,270,965,703 61,084,037,575 |
|||
Elapsed Time: 14.536 ms. |
|||
</pre> |
|||
=={{header|F Sharp|F#}}== |
=={{header|F Sharp|F#}}== |
||
<syntaxhighlight lang="fsharp"> |
<syntaxhighlight lang="fsharp"> |