Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
• Program factoid.py is concerned with shades of primality
• Module primal.py provides three functions to assist
SET UP
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Program Trace – program steps through its code
71
TrueFalseFalse