SET UP Program factoid.py is concerned with shades of primality - - PowerPoint PPT Presentation

set up
SMART_READER_LITE
LIVE PREVIEW

SET UP Program factoid.py is concerned with shades of primality - - PowerPoint PPT Presentation

SET UP Program factoid.py is concerned with shades of primality Module primal.py provides three functions to assist PYTHON FILES Program Program factoid.py factoid.py import primal a1, b1 = 6, 2 a2, b2 = 7, 3 a3, b3 = 4, 5 b1 =


slide-1
SLIDE 1
  • Program factoid.py is concerned with shades of primality
  • Module primal.py provides three functions to assist

SET UP

slide-2
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 ) : ...