that decides LCM does not run in polynomial time: a) Check if m is a

Abstract

as factors. Formally, we will work with the following decision problem: LCM = {a, b, m | lcm(a, b) = m} (a) Explain why the following algorithm that decides LCM does not run in polynomial time: a) Check if m is a multiple of a

Given two numbers a and b, the least common multiple (lcm) of a and b is the smallest number m such that both a and b are factors of m. For example, lcm(15, 21) = 105 because it is the smallest number that has both 15 and 21 as factors. Formally, we will work with the following decision problem: LCM = {a, b, m | lcm(a, b) = m} (a) Explain why the following algorithm that decides LCM does not run in polynomial time: a) Check if m is a multiple of a and b; if not reject a, b, m b) For i = 1, 2, . . . , m ? 1 do: i. If i is a multiple of a and b, a multiple smaller than m was found. Reject a, b, m. c) If it reached the end of the loop without finding a multiple less than m, accept a, b, m.