Task
a(1) = 1; for n > 1, a(n) = largest proper divisor of n, where n < 101 .


100H:
BDOS: PROCEDURE (FN, ARG); DECLARE FN BYTE, ARG ADDRESS; GO TO 5; END BDOS;
EXIT: PROCEDURE; CALL BDOS(0,0); END EXIT;
PUT$CHAR: PROCEDURE (CH); DECLARE CH BYTE; CALL BDOS(2,CH); END PUT$CHAR;
PRINT: PROCEDURE (S); DECLARE S ADDRESS; CALL BDOS(9,S); END PRINT;
 
PRINT$3: PROCEDURE (N);
    DECLARE N BYTE;
    CALL PUT$CHAR(' ');
    IF N>9
        THEN CALL PUT$CHAR('0' + N/10);
        ELSE CALL PUT$CHAR(' ');
    CALL PUT$CHAR('0' + N MOD 10);
END PRINT$3;
 
LPD: PROCEDURE (N) BYTE;
    DECLARE (N, I) BYTE;
    IF N <= 1 THEN RETURN 1;
    I = N-1;
    DO WHILE I >= 1;
        IF N MOD I = 0 THEN RETURN I;
        I = I - 1;
    END;
END LPD;
 
DECLARE I BYTE;
DO I=1 TO 100;
    CALL PRINT$3(LPD(I));
    IF I MOD 10 = 0 THEN CALL PRINT(.(13,10,'$'));
END;
CALL EXIT;
EOF