Template:Euclidean algorithm steps
{{Calculator-hideifzero
|formula=ifequal(curstep,-1)
|1={{calculator label|for=x|label=a =}} {{calculator|id=x|type=number|size=4|default=1071}}; {{calculator label|for=y|label=b =}} {{calculator|id=y|type=number|size=4|default=462}}
}}
{{Calculator-hideifzero|
formula=not(ifequal(curstep,-1))|
1={{math|1=a = {{calculator|formula=r0|type=plain|size=4|default=119
|style=background-color: light-dark( hsl(55,100%,70%,var(--calculator-colorstep0)), hsl(55,100%,25%,var(--calculator-colorstep0)) ); color: inherit
}}}}; {{math|1=b = {{calculator|formula=r1|type=plain|size=4|default=61
|style=background-color: light-dark( hsl(155,100%,70%,var(--calculator-colorstep0)), hsl(155,100%,25%,var(--calculator-colorstep0)) ); color: inherit
}}}}
}}
{{calculator|id=r0|formula=ifgreater(abs(x),abs(y),abs(x),abs(y))|type=hidden}}{{calculator|id=r1|formula=ifgreater(abs(x),abs(y),abs(y),abs(x))|type=hidden}}
{{calculator|id=curstep|default=-1|style=display:none|type=hidden}}
{{for loop||pv=n|start=0|stop=10|call=Template:Euclidean algorithm steps/line}}
{{Calculator-hideifzero|formula=ifgreater(curstep,21)|starthidden=1|1=Number is too big for the calculator}}
{{Calculator-hideifzero
|formula=ifgreater(curstep,-1)
|starthidden=1
|1={{calculator button|type=destructive|for=curstep|formula=-1|1=Restart}}
}} {{Calculator-hideifzero
|formula=
or(
and( ifequal(curstep%2,0), ifless(curstep,21 ) ),
and(
ifbetween(curstep,-1,21),
not( ifequal(
index(r,(curstep-1)/2+2),
0
) ),
ifequal( curstep,1,r1,1 )
)
)
|1={{calculator button|style=cursor:pointer|type=progressive|weight=primary|for=curstep|formula=curstep+1|1={{calculator|type=plain|mapping={"Next →":"default","Start":-1}|formula=curstep|default=Start}}}}
}}
{{documentation}}