123 lines
1.8 KiB
Text
123 lines
1.8 KiB
Text
EXPORT Jacobsthal_numbers()
|
|
BEGIN
|
|
PRINT();
|
|
LOCAL R := "First 30 Jacobsthal numbers:";
|
|
PRINT(R);
|
|
LOCAL c, ni0, ni1, P, Q, t;
|
|
c := 0;
|
|
ni0 := 0;
|
|
ni1 := 1;
|
|
P := 1;
|
|
Q := -2;
|
|
L1 := {};
|
|
FOR J FROM 1 TO 30 DO
|
|
c := c + 1;
|
|
L1(J):=ni0;
|
|
ni0 := P*ni1 - Q*ni0;
|
|
t := ni0;
|
|
ni0 := ni1;
|
|
ni1 := t;
|
|
END;
|
|
PRINT(L1);
|
|
PRINT(" ");
|
|
LOCAL fi := 6;
|
|
LOCAL co := 5;
|
|
SALIDA(L1,R,fi,co);
|
|
|
|
LOCAL R := "First 30 Jacobsthal-Lucas numbers:";
|
|
PRINT(R);
|
|
c := 0;
|
|
ni0 := 2;
|
|
ni1 := 1;
|
|
L1 := {};
|
|
FOR J FROM 1 TO 30 DO
|
|
c := c + 1;
|
|
L1(J):=ni0;
|
|
ni0 := P*ni1 - Q*ni0;
|
|
t := ni0;
|
|
ni0 := ni1;
|
|
ni1 := t;
|
|
END;
|
|
PRINT(L1);
|
|
PRINT(" ");
|
|
fi := 6;
|
|
co := 5;
|
|
SALIDA(L1,R,fi,co);
|
|
|
|
LOCAL R := "First 20 Jacobsthal oblong numbers:";
|
|
PRINT(R);
|
|
c := 0;
|
|
ni0 := 0;
|
|
ni1 := 1;
|
|
L1 := {};
|
|
FOR J FROM 1 TO 20 DO
|
|
c := c + 1;
|
|
L1(J):=ni0*ni1;
|
|
ni0 := P*ni1 - Q*ni0;
|
|
t := ni0;
|
|
ni0 := ni1;
|
|
ni1 := t;
|
|
END;
|
|
PRINT(L1);
|
|
PRINT(" ");
|
|
fi := 5;
|
|
co := 4;
|
|
SALIDA(L1,R,fi,co);
|
|
|
|
LOCAL R := "First 10 Jacobsthal primes:";
|
|
PRINT (R);
|
|
c := 0;
|
|
ni0 := 0;
|
|
ni1 := 1;
|
|
L1 := {};
|
|
REPEAT
|
|
IF isprime(ni0) THEN
|
|
c := c + 1;
|
|
L1(c) := ni0;
|
|
END;
|
|
ni0 := P*ni1 - Q*ni0;
|
|
t := ni0;
|
|
ni0 := ni1;
|
|
ni1 := t;
|
|
UNTIL c == 10;
|
|
PRINT(L1);
|
|
LOCAL fi := 10;
|
|
LOCAL co := 1;
|
|
SALIDA(L1,R,fi,co);
|
|
END;
|
|
|
|
SALIDA(L1,R,fi,co)
|
|
BEGIN
|
|
LOCAL M := MatToList(list2mat(L1,co));
|
|
LOCAL fila := fi;
|
|
LOCAL col := co;
|
|
LOCAL x0 := 5;
|
|
LOCAL y0 := 137;
|
|
LOCAL dx;
|
|
CASE
|
|
IF co==4 THEN dx:=75 END;
|
|
IF co==5 THEN dx:=64 END;
|
|
END;
|
|
LOCAL dy := 17;
|
|
LOCAL x := {};
|
|
FOR I FROM 1 TO col DO
|
|
x(I) := x0 + (I-1)*dx;
|
|
END;
|
|
|
|
RECT_P();
|
|
TEXTOUT_P(R, x0, y0/10);
|
|
FOR I FROM 1 TO fila DO
|
|
FOR J FROM 1 TO col DO
|
|
TEXTOUT_P(
|
|
STRING(M[I,J]),
|
|
x[J],
|
|
y0 - (6-(I-1))*dy,
|
|
1
|
|
);
|
|
END;
|
|
END;
|
|
R := "ENTER";
|
|
TEXTOUT_P(R, 260, 210, 2);
|
|
WAIT(-1);
|
|
FREEZE;
|
|
END;
|