SLIDE 1
- Program factoid.py is concerned with shades of primality
- Module primal.py provides three functions to assist
SET UP
SLIDE 2
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 b1 = primal.is_factor( a1, b1 ) b2 = primal.is_factor( a2, b2 ) b3 = primal.is_factor( a3, b3 ) print( b1 ) print( b2 ) print( b3 )
PYTHON FILES
SLIDE 3
PYTHON FILES
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 b1 = primal.is_factor( a1, b1 ) b2 = primal.is_factor( a2, b2 ) b3 = primal.is_factor( a3, b3 ) print( b1 ) print( b2 ) print( b3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ...
SLIDE 4
Program Trace – begins with the program code, traditionally called the main
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) main main
SLIDE 5
Program Trace – execution steps through program
Program Program factoid.py factoid.py import primal import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main
SLIDE 6
Program Trace – execution steps through program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2
SLIDE 7
Program Trace – execution steps through program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3
SLIDE 8
Program Trace – execution steps through program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5
SLIDE 9
Program Trace – function invocation causes transfer of control
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = 1 = primal primal.is_factor .is_factor( a1, b1 ) ( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5
SLIDE 10
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = 1 = primal primal.is_factor .is_factor( a1, b1 ) ( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x y
SLIDE 11
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = 1 = primal primal.is_factor .is_factor( a1, b1 ) ( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y
SLIDE 12
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = 1 = primal primal.is_factor .is_factor( a1, b1 ) ( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y
SLIDE 13
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = 1 = primal primal.is_factor .is_factor( a1, b1 ) ( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2
SLIDE 14
Program Trace – cpu control is passed to function
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = 1 = primal primal.is_factor .is_factor( a1, b1 ) ( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2
SLIDE 15
Program Trace – cpu control is passed to function
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = 1 = primal primal.is_factor .is_factor( a1, b1 ) ( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def def is_factor is_factor( x, y ) : ( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2
SLIDE 16
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2 rem
SLIDE 17
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2 rem
SLIDE 18
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = result = True True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2 rem result True
SLIDE 19
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2 rem result True
SLIDE 20
Program Trace – return expression is the value of the invocation
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2 rem result True
SLIDE 21
Program Trace – return expression is the value of the invocation
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = True r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2 rem result True
SLIDE 22
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 6 y 2 rem result True
SLIDE 23
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True
SLIDE 24
Program Trace – program steps through its code
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ...
SLIDE 25
Program Trace – function invocation causes transfers of control
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ...
SLIDE 26
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? is_factor is_factor() () x y
SLIDE 27
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? is_factor is_factor() () x 7 y
SLIDE 28
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? is_factor is_factor() () x 7 y
SLIDE 29
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? is_factor is_factor() () x 7 y 3
SLIDE 30
Program Trace – cpu control is passed to function
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = primal primal.is_factor .is_factor( ( a2, b2 ) a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? is_factor is_factor() () x 7 y 3
SLIDE 31
Program Trace – cpu control is passed to function
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = primal.is_factor primal.is_factor( a2, b2 ) ( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def def is_factor is_factor( x, y ) : ( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3
SLIDE 32
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = primal.is_factor primal.is_factor( a2, b2 ) ( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3 rem 1
SLIDE 33
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = primal.is_factor primal.is_factor( a2, b2 ) ( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3 rem 1
SLIDE 34
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = primal.is_factor primal.is_factor( a2, b2 ) ( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3 rem 1 result False
SLIDE 35
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = primal.is_factor primal.is_factor( a2, b2 ) ( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3 rem 1 result False
SLIDE 36
Program Trace – return expression is the value of the invocation
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = primal.is_factor primal.is_factor( a2, b2 ) ( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3 rem 1 result False
SLIDE 37
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = r2 = False False r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3 rem 1 result False
SLIDE 38
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 7 y 3 rem 1 result False
SLIDE 39
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = 2 = primal.is_factor primal.is_factor( ( a2, b2 a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False
SLIDE 40
Program Trace – program steps through its code
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) mainr mainr a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 ??? Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ...
SLIDE 41
Program Trace – function invocation causes transfers of control
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 ??? Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ...
SLIDE 42
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 ??? is_factor is_factor() () x y
SLIDE 43
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 ??? is_factor is_factor() () x 4 y
SLIDE 44
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 False is_factor is_factor() () x 4 y
SLIDE 45
Program Trace – copies of arguments are passed (assigned) to parameters
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 ??? is_factor is_factor() () x 4 y 5
SLIDE 46
Program Trace – cpu control is passed to function
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 True r3 ??? is_factor is_factor() () x 4 y 5
SLIDE 47
Program Trace – cpu control is passed to function
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = r3 = primal primal.is_factor .is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 ??? is_factor is_factor() () x 4 y 5
SLIDE 48
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 r3 = = primal.is_factor primal.is_factor( a3, b3 ) ( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 4 y 5 rem 4
SLIDE 49
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 r3 = = primal.is_factor primal.is_factor( a3, b3 ) ( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 4 y 5 rem 4
SLIDE 50
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 r3 = = primal.is_factor primal.is_factor( a3, b3 ) ( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 4 y 5 rem 4 result False
SLIDE 51
Program Trace – function executes
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 r3 = = primal.is_factor primal.is_factor( a3, b3 ) ( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 4 y 5 rem 4 result False
SLIDE 52
Program Trace – return expression is the value of the invocation
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 r3 = False = False print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 4 y 5 rem 4 result False
SLIDE 53
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 r3 = = False False print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 4 y 5 rem 4 result False
SLIDE 54
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 r3 = = primal.is_factor primal.is_factor( a3, b3 ) ( a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 ??? is_factor is_factor() () x 4 y 5 rem 4 result False
SLIDE 55
Program Trace – cpu control is passed back to program
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = 3 = primal.is_factor primal.is_factor( ( a3, b3 ) a3, b3 ) print( r1 ) print( r2 ) print( r3 ) Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ... main main a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 False
SLIDE 56
Program Trace – program steps through its code
Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 r1 = primal.is_factor( a1, b1 ) r2 = primal.is_factor( a2, b2 ) r3 = primal.is_factor( a3, b3 ) print( r1 ) print( r1 ) print( r2 ) print( r3 ) mainr mainr a1 6 b1 2 a2 7 b2 3 a3 4 b3 5 r1 True r2 False r3 False Module Module primal.py primal.py def is_factor( x, y ) : rem = x % y if ( rem == 0 ) : result = True else: result = False return result def are_relative_primes( x, y ) : ...