// call this function
public static int gcd(List<int> input)
{
int result = input[0];
for (int i = 1; i < input.Count; i++)
{
result = gcd(result, input[i]);
}
return result;
}
private static int gcd(int a, int b)
{
while (b > 0)
{
int temp = b;
b = a % b; // % is remainder
a = temp;
}
return a;
}