' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2024.09.09.00.00]) on 2026.03.31 at 18:16 (Coordinated Universal Time)
' This program is a port and mod of a PC-BASIC
' program by Kurt Moerman which he shared with
' the BASIC Programming Language Facebook Group
' in this post: https://www.facebook.com/share/p/14Wg9zYMpCq/

 20 PRINT "Modular multiplication circle"
 70 SCREEN 9: CLS: PI! = 3.1415: R% = 220: ASPECT! = 640 / 350 * 3 / 4
 80 DIM X%( 300 - 1 ), Y%( 300 - 1 )
 85 M% = INT( RND * 300 ) + 1 
 87 P% = INT( RND * 77 ) + 1
 90 FOR N% = 0 TO M% - 1
100   ALPHA! = PI! * ( 2 * N% / M% + .5 )
110   X%(N%) = 320 - R% * COS(ALPHA!)
120   Y%(N%) = 175 - R% * SIN(ALPHA!) / ASPECT!
130 NEXT N%
150 FOR N% = 0 TO M% - 1
160   ' write own MOD function x mod y = CINT( ( x / y - INT( x / y ) ) * y )
170   NP! = N% * P%: Q! = NP! / M% : K% = CINT( (Q! - INT(Q!) ) * M% )
180   LINE( X%(K%), Y%(K%)) - ( X%(N%), Y%(N%) ), 14
185   SLEEP 0.01
190 NEXT N%
200 LOCATE 1, 3 : PRINT "Modular Multiplication Circle"
210 LOCATE 2, 3 : PRINT "m="; M% : LOCATE 3, 3 : PRINT "p=";P%
220 SLEEP 4 : CLS : GOTO 85