Smallest square that begins with n: Difference between revisions
Content added Content deleted
(Added Uiua solution) |
Not a robot (talk | contribs) (Add Modula-2) |
||
Line 2,032: | Line 2,032: | ||
484 |
484 |
||
49</pre> |
49</pre> |
||
=={{header|Modula-2}}== |
|||
<syntaxhighlight lang="modula2">MODULE SmallestSquareWithPrefix; |
|||
FROM InOut IMPORT WriteCard, WriteLn; |
|||
VAR n: CARDINAL; |
|||
PROCEDURE prefix(n, m: CARDINAL): BOOLEAN; |
|||
BEGIN |
|||
IF n>=m |
|||
THEN RETURN n=m |
|||
ELSE RETURN prefix(n, m DIV 10) |
|||
END |
|||
END prefix; |
|||
PROCEDURE firstPrefixSquare(n: CARDINAL): CARDINAL; |
|||
VAR |
|||
sq, sqr: CARDINAL; |
|||
BEGIN |
|||
sqr := 0; |
|||
REPEAT |
|||
INC(sqr); |
|||
sq := sqr*sqr |
|||
UNTIL prefix(n, sq); |
|||
RETURN sq |
|||
END firstPrefixSquare; |
|||
BEGIN |
|||
FOR n := 0 TO 49 DO |
|||
WriteCard(firstPrefixSquare(n), 7); |
|||
IF n MOD 10 = 9 THEN WriteLn END |
|||
END |
|||
END SmallestSquareWithPrefix.</syntaxhighlight> |
|||
{{out}} |
|||
<pre> 1 1 25 36 4 529 64 729 81 9 |
|||
100 1156 121 1369 144 1521 16 1764 1849 196 |
|||
2025 2116 225 2304 2401 25 2601 2704 289 2916 |
|||
3025 3136 324 3364 3481 35344 36 3721 3844 3969 |
|||
400 41209 4225 4356 441 45369 4624 4761 484 49</pre> |
|||
=={{header|Nim}}== |
=={{header|Nim}}== |