จาก Fundamental Theorem of Arithmetic ตัวเลข x x x ใดๆสามารถเขียนได้ในรูปแบบ p 1 a 1 p 2 a 2 p 3 a 3 … p k a k p_1^{a_1}p_2^{a_2}p_3^{a_3} \dots p_k^{a_k} p 1 a 1 p 2 a 2 p 3 a 3 … p k a k โดยที่แต่ละ p i p_i p i เป็นจำนวนเต็มที่แตกต่างกันและแต่ละ a i a_i a i เป็นจำนวนเต็มที่ไม่ เป็นลบ
ถ้าหากมีจำนวนเต็ม x 1 , x 2 , x 3 , … , x n x_1, x_2, x_3, \dots, x_n x 1 , x 2 , x 3 , … , x n โดยที่
x 1 = p 1 a 1 , 1 p 2 a 1 , 2 p 3 a 1 , 3 … p k a 1 , k x 2 = p 1 a 2 , 1 p 2 a 2 , 2 p 3 a 2 , 3 … p k a 2 , k x 3 = p 1 a 3 , 1 p 2 a 3 , 2 p 3 a 3 , 3 … p k a 3 , k ⋮ x n = p 1 a n , 1 p 2 a n , 2 p 3 a n , 3 … p k a n , k x_1 = p_1^{a_{1, 1}}p_2^{a_{1, 2}}p_3^{a_{1, 3}} \dots p_k^{a_{1, k}} \\
x_2 = p_1^{a_{2, 1}}p_2^{a_{2, 2}}p_3^{a_{2, 3}} \dots p_k^{a_{2, k}} \\
x_3 = p_1^{a_{3, 1}}p_2^{a_{3, 2}}p_3^{a_{3, 3}} \dots p_k^{a_{3, k}} \\
\vdots \\
x_n = p_1^{a_{n, 1}}p_2^{a_{n, 2}}p_3^{a_{n, 3}} \dots p_k^{a_{n, k}} \\ x 1 = p 1 a 1 , 1 p 2 a 1 , 2 p 3 a 1 , 3 … p k a 1 , k x 2 = p 1 a 2 , 1 p 2 a 2 , 2 p 3 a 2 , 3 … p k a 2 , k x 3 = p 1 a 3 , 1 p 2 a 3 , 2 p 3 a 3 , 3 … p k a 3 , k ⋮ x n = p 1 a n , 1 p 2 a n , 2 p 3 a n , 3 … p k a n , k
จากนิยามของ LCM จะสังเกตุได้ว่า
l c m ( x 1 , x 2 , x 3 , … , x n ) = p 1 m a x ( a 1 , 1 , a 2 , 1 , a 3 , 1 , … , a n , 1 ) p 2 m a x ( a 1 , 2 , a 2 , 2 , a 3 , 2 , … , a n , 2 ) p 3 m a x ( a 1 , 3 , a 2 , 3 , a 3 , 3 , … , a n , 3 ) … p n m a x ( a 1 , n , a 2 , n , a 3 , n , … , a n , n ) lcm(x_1, x_2, x_3, \dots, x_n) = p_1^{max(a_{1,1}, a_{2,1}, a_{3,1}, \dots ,a_{n,1})}p_2^{max(a_{1,2}, a_{2,2}, a_{3,2}, \dots ,a_{n,2})}p_3^{max(a_{1,3}, a_{2,3}, a_{3,3}, \dots ,a_{n,3})} \dots p_n^{max(a_{1,n}, a_{2,n}, a_{3,n}, \dots ,a_{n,n})} l c m ( x 1 , x 2 , x 3 , … , x n ) = p 1 ma x ( a 1 , 1 , a 2 , 1 , a 3 , 1 , … , a n , 1 ) p 2 ma x ( a 1 , 2 , a 2 , 2 , a 3 , 2 , … , a n , 2 ) p 3 ma x ( a 1 , 3 , a 2 , 3 , a 3 , 3 , … , a n , 3 ) … p n ma x ( a 1 , n , a 2 , n , a 3 , n , … , a n , n )
ดังนั้นเราจะแยกตัวประกอบแต่ละ x i x_i x i เพื่อหาตัวหารที่เป็นจำนวนเฉพาะ ซึ่งจะทำให้เราสามารถเขียน x i x_i x i ในรูปแบบ x i = p 1 a i , 1 p 2 a i , 2 p 3 a i , 3 … p k a i , k x_i = p_1^{a_{i, 1}}p_2^{a_{i, 2}}p_3^{a_{i, 3}} \dots p_k^{a_{i, k}} x i = p 1 a i , 1 p 2 a i , 2 p 3 a i , 3 … p k a i , k ได้ ทั้งนี้ทำได้ด้วย trial division ซึ่งใช้เวลาเพียง O ( x i ) O(\sqrt{x_i}) O ( x i ) เท่านั้น อัลกอริทึมทั้งหมดจึงใช้เวลาในการทำงานเท่ากับ O ( n m a x ( x 1 , x 2 , x 3 , … , x n ) ) O(n\sqrt{max(x_1, x_2, x_3, \dots, x_n)}) O ( n ma x ( x 1 , x 2 , x 3 , … , x n ) )