0010 FUNC mulinv#(a#,b#) CLOSED 0020 IF b#<0 THEN b#:=-b# 0030 IF a#<0 THEN a#:=b#-(-a# MOD b#) 0040 t#:=0;nt#:=1;r#:=b#;nr#:=a# MOD b# 0050 WHILE nr#<>0 DO 0060 q#:=r# DIV nr# 0070 tmp#:=nt#;nt#:=t#-q#*nt#;t#:=tmp# 0080 tmp#:=nr#;nr#:=r#-q#*nr#;r#:=tmp# 0090 ENDWHILE 0100 IF r#>1 THEN RETURN -1 0110 IF t#<0 THEN t#:+b# 0120 RETURN t# 0130 ENDFUNC mulinv# 0140 // 0150 WHILE NOT EOD DO 0160 READ a#,b# 0170 PRINT a#,", ",b#," -> ",mulinv#(a#,b#) 0180 ENDWHILE 0190 END 0200 // 0210 DATA 42,2017,40,1,52,-217,-486,217,40,2018