Steady squares: Difference between revisions

Content added Content deleted
(Added PL/0)
(Add Miranda)
Line 1,210: Line 1,210:
625**2 = 390625
625**2 = 390625
9376**2 = 87909376</pre>
9376**2 = 87909376</pre>

=={{header|Miranda}}==
<syntaxhighlight lang="miranda">main :: [sys_message]
main = [Stdout (lay (map showsteady (takewhile (< 10000) steadies)))]
where showsteady n = shownum n ++ "^2 = " ++ shownum (n^2)

steadies :: [num]
steadies = filter steady [1..]

steady :: num->bool
steady n = n = n^2 mod 10^numdigits n

numdigits :: num->num
numdigits n = 1, if n<10
= 1 + numdigits (n div 10), otherwise</syntaxhighlight>
{{out}}
<pre>1^2 = 1
5^2 = 25
6^2 = 36
25^2 = 625
76^2 = 5776
376^2 = 141376
625^2 = 390625
9376^2 = 87909376</pre>


=={{header|Perl}}==
=={{header|Perl}}==