Jump to content

Steady squares: Difference between revisions

→‎{{header|Euler}}: Sybntax highlight with Mediawiki markup
(→‎{{header|Euler}}: Sybntax highlight with Mediawiki markup)
Line 786:
<br>
Everything is Euler is an expression (apart from new/label/formal) and returns a value (although the value of a "goto" can't be used), so the "else" part of an "if" is not optional, hence the "else 0"s appearing in the code below.
'''begin'''
<syntaxhighlight lang="euler">
'''new''' maxNumber; '''new''' powerOfTen; '''new''' lastDigit; '''new''' n;
begin
'''new''' while;
new maxNumber; new powerOfTen; new lastDigit; new n;
new while;
while <&lt;- ` '''formal''' condition; '''formal''' loopBody;
 
label again;'''begin'''
while <- ` formal condition; formal loopBody;
begin '''label''' again;
again: '''if''' condition '''then''' '''begin''' loopBody; '''goto''' again '''end''' '''else''' 0
label again;
again: if condition then begin loopBody; goto again '''end else 0'''
end&apos;
';
;
maxNumber &lt;- 10 000;
 
maxNumber powerOfTen <&lt;- 10 000;
lastDigit &lt;- ( 1, 5, 6 );
powerOfTen <- 10;
lastDigit n <&lt;- ( 1, 5, 6 )-10;
while( ` [ n &lt;- n + 10 ] &lt;= maxNumber &apos;
n <- -10;
while( ` [ n <- n +, 10 ] <= maxNumber` '''begin'''
, ` begin '''new''' d;
'''if''' n = powerOfTen '''then''' powerOfTen &lt;- powerOfTen * 10
new d;
if n = powerOfTen then powerOfTen <- powerOfTen * 10 '''else''' 0;
d else&lt;- 0;
while( ` [ d <&lt;- 0d + 1 ] &lt;= '''length''' lastDigit &apos;
while( ` [ d <- d +, 1 ] <= length lastDigit` '''begin'''
, ` begin '''new''' nd; '''new''' n2;
new nd &lt;- n + lastDigit[ newd n2];
nd <n2 &lt;- nnd +* lastDigit[ d ]nd;
'''if''' n2 <-'''mod''' powerOfTen = nd *'''then''' '''out''' nd; '''else''' 0
if n2 mod powerOfTen = nd then out nd else 0'''end'''
end&apos;
')
)'''end'''
end&apos;
')
'''end'''
)
$
end
</syntaxhighlight>
{{out}}
<pre>
3,038

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.