Lowest common denominator

Run Settings
LanguageC#
Language Version
Run Command
using System; using System.Linq; using System.Collections.Generic; class MainClass { static List<int> LowestCommonDenominator(int val, bool print = true) { var primes = new List<int>() {2,3}; int i = val; for(i = 3; i <= val; i++) { if(primes.All(p => i % p != 0)) { primes.Add(i); } } i--; var values = new List<int>(); while(i > 1) { var first = primes.First(p => i % p == 0); i /= first; values.Add(first); } if(print) { Console.WriteLine($"{new string(' ', 8-val.ToString().Length)}{val} = {string.Join("*", values)}"); } return values; } static void Main() { foreach(var val in new int[]{2560,1440}) { LowestCommonDenominator(val); } Console.WriteLine(); LowestCommonDenominator(2560/32/5); LowestCommonDenominator(1440/32/5); LowestCommonDenominator(1920/24/5); LowestCommonDenominator(1080/24/5); Console.WriteLine(); var aVal = 2560; var bVal = 1440; var a = LowestCommonDenominator(aVal, false); var b = LowestCommonDenominator(bVal, false); while(a.Any(aa => b.Contains(aa))) { var x = a.First(aa => b.Contains(aa)); a.Remove(x); b.Remove(x); } Console.WriteLine($"{new string(' ', 8-aVal.ToString().Length)}{aVal} = {string.Join("*", a)}"); Console.WriteLine($"{new string(' ', 8-bVal.ToString().Length)}{bVal} = {string.Join("*", b)}"); } }
Editor Settings
Theme
Key bindings
Full width
Lines