3. Multiple or factor
VC2M5N10: level 5: Follow a mathematical algorithm involving branching and repetition (iteration); create and use algorithms involving a sequence of steps and decisions and digital tools to experiment with factors, multiples and divisibility; identify, interpret and describe emerging patterns
creating algorithms that use multiplication and division facts to determine if a number is a multiple or factor of another number; for example, using a flow chart that determines whether numbers are factors or multiples of other numbers using branching, such as yes/no decisions
3.1. Pseudocode
The pseudocode to determine if one number is a factor or multiple of a second number.
function is_multiple_or_factor(a, b)
if a = 0 or b = 0
return “Do not use 0 for a or b”
end if
if b % a = 0
return a + “ is a factor of “ + b
else if a % b = 0
return a + “ is a multiple of “ + b
else
return a + “ is neither factor nor multiple of “ + b
end if
end function
3.2. Multiple or factor code
1
2def is_multiple_or_factor(a, b):
3 """Check if a is a multiple or a factor of b.
4
5 Parameters:
6 a (int): The first number
7 b (int): The second number
8
9 Returns:
10 str: A string indicating the relationship between a and b
11 """
12 # Check for 0 values of a or b
13 if a == 0 or b == 0:
14 return "Do not use 0 for a or b"
15 if b % a == 0:
16 # a is a factor of b
17 return f'{a} is a factor of {b}'
18 elif a % b == 0:
19 # a is a multiple of b
20 return f'{a} is a multiple of {b}'
21 # Otherwise, return "neither", since neither condition is met
22 else:
23 return f'{a} is neither factor nor multiple of {b}'
24
25# Test the function with some examples
26a, b = 6, 18
27print(is_multiple_or_factor(a, b)) # 6 is a factor of 18
28a, b = 20, 4
29print(is_multiple_or_factor(a, b)) # 20 is a multiple of 4
30a, b = 9, 2
31print(is_multiple_or_factor(a, b)) # 9 is neither factor nor multiple of 2
32a, b = 2, 0
33print(is_multiple_or_factor(a, b)) # Do not use 0 for a or b
34
35