Thursday, November 5, 2009

An Algorithm to Find the Greatest Common Divisor (Non-Recursive) (Very Inefficient)

function greatestCommonDivisor = greatestCommonDivisor(num1, num2)
facNum1 = factor(num1);
facNum2 = factor(num2);
index1 = 1;
index2 = 1;
greatestCommonDivisor = 1;
if facNum1(index1) == facNum2(index2)
greatestCommonDivisor = greatestCommonDivisor * facNum1(index1);
facNum2(index2) = 1;
end
index1 = 2;
index2 = 2;
while index1 <= length(facNum1) - 1
while index2 <= length(facNum2) - 1 && facNum1(index1) ~= facNum2(index2)
index2 = index2 + 1;
end
if facNum1(index1) == facNum2(index2)
greatestCommonDivisor = greatestCommonDivisor * facNum2(index2);
facNum2(index2) = 1;
end
index1 = index1 + 1;
end

No comments:

Post a Comment