Time complexity of the Least Common Multiple (LCM) algorithm


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.

(b) Prove that LCM ∈ P.