22 lines
559 B
Plaintext
22 lines
559 B
Plaintext
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
|