using System.Collections.Generic;
public class SmallestMultiple
public static long FindSmallestMultiple(List<int> numList)
if (numList == null || numList.Count == 0)
var result = (long)numList[0];
for (int i = 1; i < numList.Count; i++)
result = Lcm(result, numList[i]);
public static long Lcm(long a, long b)
return Math.Abs(a * b) / Gcd(a, b);
public static long Gcd(long a, long b)
public static void Main(string[] args)
Console.WriteLine($"The GCD of 8 and 32 is:\n {gcd1}");
var listNums1 = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var listNums2 = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
long smallestMultipleToTen = FindSmallestMultiple(listNums1);
long smallestMultipleToTwenty = FindSmallestMultiple(listNums2);
var stringNum1 = string.Join(", ", listNums1);
var stringNum2 = string.Join(", ", listNums2);
Console.WriteLine($"The smallest multiple of {stringNum1} is:\n {smallestMultipleToTen}");
Console.WriteLine($"The smallest multiple of {stringNum2} is:\n {smallestMultipleToTwenty}");