static void Main(string[] args) { int max = 10000; int[] factorsSum = new int[max - 1]; for (int i = 0; i < factorsSum.Length; i++) { SortedSet <int> tempFactors = ExtraNumbers.Factors(i + 2); for (int j = 0; j < tempFactors.Count - 1; j++) { factorsSum[i] += tempFactors.ElementAt(j); } } int amicablesum = 0; for (int i = 0; i < factorsSum.Length; i++) { if (1 < factorsSum[i] && factorsSum[i] < max - 2) { if (i + 2 == factorsSum[factorsSum[i] - 2] && factorsSum[i] != i + 2) { amicablesum += i + 2; } } } Console.WriteLine(amicablesum); Console.ReadLine(); }
static int DigitFactorialSum(int n) { int sum = 0; while (n > 0) { sum += (int)ExtraNumbers.Factorial(n % 10); n /= 10; } return(sum); }
private static int LengthPrimes(int i, int j) { int counter = 0; while (ExtraNumbers.IsPrime(counter * counter + i * counter + j)) { counter++; } return(counter); }
private static bool ConsecutiveFactors(int start, int noFactors) { for (int i = 0; i < noFactors; i++) { if (ExtraNumbers.PrimeFactors(start + i).Distinct().Count() != noFactors) { return(false); } } return(true); }
static bool IsAbundant(int number) { SortedSet <int> factors = ExtraNumbers.Factors(number); int sum = 0; for (int i = 0; i < factors.Count - 1; i++) { sum += factors.ElementAt(i); } return(sum > number); }
static void Main(string[] args) { List <string> permutations = ExtraNumbers.AllPermutations("7654321"); foreach (string s in permutations) { if (ExtraNumbers.IsPrime(int.Parse(s))) { Console.WriteLine(s); break; } } Console.ReadLine(); }
static void Main(string[] args) { long sum = 0; List <string> permutations = ExtraNumbers.AllPermutations("0123456789"); foreach (string s in permutations) { if (Divisibilities(s)) { sum += long.Parse(s); } } Console.WriteLine(sum); Console.ReadLine(); }
private static bool IsPandigitalProducts(int n) { SortedSet <int> factors = ExtraNumbers.Factors(n); for (int i = 0; i < factors.Count / 2; i++) { int product1 = factors.ElementAt(i); int product2 = factors.ElementAt(factors.Count - 1 - i); if (IsAllPandigital(n, product1, product2)) { return(true); } } return(false); }
static void Main(string[] args) { int numberOfFactors = 500; int foundFactors = 1; int counter = 1; int triangle = 1; while (foundFactors <= numberOfFactors) { triangle = TriangleAt(counter); foundFactors = ExtraNumbers.Factors(triangle).Count; counter++; } Console.WriteLine(triangle); Console.Read(); }
static void Main(string[] args) { int max = 2000000; bool[] primes = ExtraNumbers.Sieve(max); BigInteger sum = 0; for (int i = 0; i < primes.Length; i++) { if (!primes[i]) { sum += i + 2; } } Console.WriteLine(sum); Console.Read(); }