28 lines
724 B
Plaintext
28 lines
724 B
Plaintext
10 ' Modular inverse
|
|
20 LET E% = 42
|
|
30 LET T% = 2017
|
|
40 GOSUB 1000
|
|
50 PRINT MODINV%
|
|
60 END
|
|
|
|
990 ' increments e stp (step) times until bal is greater than t
|
|
992 ' repeats until bal = 1 (mod = 1) and returns count
|
|
994 ' bal will not be greater than t + e
|
|
1000 LET D% = 0
|
|
1010 IF E% >= T% THEN GOTO 1140
|
|
1020 LET BAL% = E%
|
|
1025 ' At least one iteration is necessary
|
|
1030 LET STP% = ((T% - BAL%) \ E%) + 1
|
|
1040 LET BAL% = BAL% + STP% * E%
|
|
1050 LET COUNT% = 1 + STP%
|
|
1060 LET BAL% = BAL% - T%
|
|
1070 WHILE BAL% <> 1
|
|
1080 LET STP% = ((T% - BAL%) \ E%) + 1
|
|
1090 LET BAL% = BAL% + STP% * E%
|
|
1100 LET COUNT% = COUNT% + STP%
|
|
1110 LET BAL% = BAL% - T%
|
|
1120 WEND
|
|
1130 LET D% = COUNT%
|
|
1140 LET MODINV% = D%
|
|
1150 RETURN
|