71
Program factoid.py is concerned with shades of primality Module primal.py provides three functions to assist SET UP

Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

• Program factoid.py is concerned with shades of primality

• Module primal.py provides three functions to assist

SET UP

Page 2: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

PYTHON FILES

Program 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 )2

Page 3: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

PYTHON FILES

Program 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 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 ) :

...

3

Page 4: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – begins with the program code, traditionally called the main

Program 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

4

Page 5: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – execution steps through program

Program 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 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

5

Page 6: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – execution steps through program

Program 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 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

a1 6

b1 2

6

Page 7: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – execution steps through program

Program 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 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

a1 6

b1 2

a2 7

b2 3

7

Page 8: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – execution steps through program

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

8

Page 9: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function invocation causes transfer of control

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

9

Page 10: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x

y

10

Page 11: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y

11

Page 12: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y

12

Page 13: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

13

Page 14: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

14

Page 15: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

15

Page 16: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

rem 0

16

Page 17: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

rem 0

17

Page 18: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

rem 0

result True

18

Page 19: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

rem 0

result True

19

Page 20: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – return expression is the value of the invocation

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

rem 0

result True

20

Page 21: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – return expression is the value of the invocation

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

rem 0

result True

21

Page 22: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 6

y 2

rem 0

result True

22

Page 23: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

23

Page 24: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

Module 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 ) :

...

24

Page 25: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function invocation causes transfers of control

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

Module 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 ) :

...

25

Page 26: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

is_factor()

x

y

26

Page 27: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

is_factor()

x 7

y

27

Page 28: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

is_factor()

x 7

y

28

Page 29: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

is_factor()

x 7

y 3

29

Page 30: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

is_factor()

x 7

y 3

30

Page 31: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

31

Page 32: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

rem 1

32

Page 33: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

rem 1

33

Page 34: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

rem 1

result False

34

Page 35: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

rem 1

result False

35

Page 36: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – return expression is the value of the invocation

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

rem 1

result False

36

Page 37: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program factoid.py

import primal

a1, b1 = 6, 2

a2, b2 = 7, 3

a3, b3 = 4, 5

r1 = primal.is_factor( a1, b1 )

r2 = False

r3 = primal.is_factor( a3, b3 )

print( r1 )

print( r2 )

print( r3 )

Module 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

rem 1

result False

37

Page 38: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 7

y 3

rem 1

result False

38

Page 39: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

39

Page 40: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 ???

Module 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 ) :

...

40

Page 41: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function invocation causes transfers of control

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 ???

Module 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 ) :

...

41

Page 42: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 ???

is_factor()

x

y

42

Page 43: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 ???

is_factor()

x 4

y

43

Page 44: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

is_factor()

x 4

y

44

Page 45: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – copies of arguments are passed (assigned) to parameters

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 ???

is_factor()

x 4

y 5

45

Page 46: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 True

r3 ???

is_factor()

x 4

y 5

46

Page 47: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 ???

is_factor()

x 4

y 5

47

Page 48: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

48

Page 49: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

rem 4

49

Page 50: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

rem 4

50

Page 51: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

rem 4

result False

51

Page 52: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – function executes

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

rem 4

result False

52

Page 53: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – return expression is the value of the invocation

Program 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 = False

print( r1 )

print( r2 )

print( r3 )

Module 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

rem 4

result False

53

Page 54: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program 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 = False

print( r1 )

print( r2 )

print( r3 )

Module 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

rem 4

result False

54

Page 55: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 ???

is_factor()

x 4

y 5

rem 4

result False

55

Page 56: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed back to program

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

56

Page 57: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

Module 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 ) :

...

57

Page 58: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

print()

??? ???

??? True

??? ???

??? ???

58

Page 59: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 True

r3 False

59

print()

??? ???

??? True

??? ???

??? ???

True

Page 60: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 True

r3 False

60

print()

??? ???

??? True

??? ???

??? ???

True

Page 61: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

Module 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 ) :

...

61

True

Page 62: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

print()

??? ???

??? ???

??? False

??? ???

62

True

Page 63: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 True

r3 False

63

print()

??? ???

??? ???

??? False

??? ???

TrueFalse

Page 64: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 True

r3 False

64

print()

??? ???

??? ???

??? False

??? ???

TrueFalse

Page 65: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

Module 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 ) :

...

65

TrueFalse

Page 66: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

print()

??? False

??? ???

??? ???

??? ???

66

TrueFalse

Page 67: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 True

r3 False

67

print()

??? False

??? ???

??? ???

??? ???

TrueFalseFalse

Page 68: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – cpu control is passed to function

Program 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 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 True

r3 False

68

print()

??? False

??? ???

??? ???

??? ???

TrueFalseFalse

Page 69: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

Program 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

a1 6

b1 2

a2 7

b2 3

a3 4

b3 5

r1 True

r2 False

r3 False

Module 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 ) :

...

69

TrueFalseFalse

Page 70: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

Program 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 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 ) :

...

70

TrueFalseFalse

Page 71: Program factoid.pyis concerned with shades of primality ... · Program Trace –return expression is the value of the invocation Program factoid.py import primal a1, b1 = 6, 2 a2,

Program Trace – program steps through its code

71

TrueFalseFalse