Largest proper divisor of n: Difference between revisions

Add PL/M
(→‎{{header|Haskell}}: Applied HLint and Ormolu, tidied.)
(Add PL/M)
Line 297:
27 41 1 42 17 43 29 44 1 45
13 46 31 47 19 48 1 49 33 50</pre>
=={{header|PL/M}}==
<lang plm>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</lang>
{{out}}
<pre> 1 1 1 2 1 3 1 4 3 5
1 6 1 7 5 8 1 9 1 10
7 11 1 12 5 13 9 14 1 15
1 16 11 17 7 18 1 19 13 20
1 21 1 22 15 23 1 24 7 25
17 26 1 27 11 28 19 29 1 30
1 31 21 32 13 33 1 34 23 35
1 36 1 37 25 38 11 39 1 40
27 41 1 42 17 43 29 44 1 45
13 46 31 47 19 48 1 49 33 50</pre>
 
=={{header|Python}}==
<lang python>def lpd(n):
2,119

edits