public static void Run() { int limit = 10001; var primeList = EulerTools.GeneratePrimesNaive(100000); Console.WriteLine($"len of prime-list: {primeList.Count}"); // Console.WriteLine($"last prime: {primeList[primeList.Count- 1]}"); Console.WriteLine($"last prime: {primeList[10001]}"); }
public static void Run() { int n1 = 999; int n2 = 999; int maxPalindrome = 0; List <int> results = new List <int>(); while (n1 >= 100) { while (n2 >= 100) { int result = n1 * n2; // for linq results.Add(result); bool testPalindrome = EulerTools.IsPalindrome(result); // Console.WriteLine(testPalindrome + ": " + result + " " + n1 + " x " + n2); if (testPalindrome) { maxPalindrome = (result > maxPalindrome) ? result : maxPalindrome; // Console.WriteLine("palindrome: {0}. n1: {1}, n2: {2}. max palindrome: {3}", result, n1, n2, maxPalindrome); } n2--; } n1--; n2 = 999; } Console.WriteLine("fin classic: "); Console.WriteLine("max palindrome: " + maxPalindrome); var palindromeResults = results.Where(n => EulerTools.IsPalindrome(n)); Console.WriteLine("fin linq: "); Console.WriteLine("max palindrome: " + palindromeResults.Max()); }
public static void Run() { var primeNumbers = EulerTools.GeneratePrimesNaive(10000); // classic solution int biggestDividor = 0; foreach (int n in primeNumbers) { if (largeNumber % (ulong)n == 0 && (ulong)n < largeNumber) { biggestDividor = (n > biggestDividor ? n : biggestDividor); } } print("classic solution: "); print("biggest dividor: " + biggestDividor); // linq solution var biggestDividorLinq = primeNumbers.Where(n => largeNumber % (ulong)n == 0).Where(n => (ulong)n < largeNumber); print("\nlinq solution: "); print("Linq: Max dividor: " + biggestDividorLinq.Max()); }