//PRIME TEST (find 1st and 5th columns) //EXCEL =OR(MOD(C3,6)=1, MOD(C3,6)=5) public static IEnumerable <int> Prime5s() { var nums = ListExtension.NumberList(1, 100); var myPrime5s = nums.Where(x => x % 5 == 0); return(myPrime5s); }
//PRIME TEST (5x exceptions) public static IEnumerable <int> PrimeExceptions5s() { var nums = ListExtension.NumberList(1, 100); var myPrimeExceptions = nums.Where(x => x % 5 == 0 && (x % 6 == 1 || x % 6 == 5)); return(myPrimeExceptions); }
//PRIME FUNCTIONS (real primes) public static IEnumerable <int> PrimeReal(int rangeTo) { //list of numbers (1 to 100) var nums = ListExtension.NumberList(1, rangeTo); //need to start at 1(if higher may miss some primes) //prime exceptions var primeExceptions = PrimeException(rangeTo); //var primeExceptions = PrimeException2(rangeTo); //prime rows only var primeRows = nums.PrimeFilterRows(); //get real primes (remove all prime exceptions from prime rows) var primeReal = primeRows.Except(primeExceptions); //remove (1 from beginning) primeReal = primeReal.ToList().PrimeSkipFirstElement(); //add (2 and 3) to beginning of list List <int> finalPrimes = new List <int>(); finalPrimes.Add(2); finalPrimes.Add(3); finalPrimes.AddRange(primeReal); //add rest of prime list return(finalPrimes); }
//PRIME FUNCTIONS (exception list) public static IEnumerable <int> PrimeException(int rangeTo) { //list of numbers (1 to 100) var nums = ListExtension.NumberList(1, rangeTo); //need to start at 1(if higher may miss some primes) //create a separate (mod list) to test for (each multiple) to use as exceptions var modList = nums .PrimeFilterRows().ToList() .PrimeSkipFirstElement().ToList(); var newList = new List <int>(); //new list for prime exceptions var testMod = new List <int>(); //iterate through all mod's foreach (var mod in modList) { testMod = nums .PrimeFilterRows().ToList() .PrimeFilterMod(mod).ToList() .PrimeSkipFirstElement().ToList(); //add each (mod set of numbers) to new list newList.AddRange(testMod); } //create a new list of prime exceptions newList = newList .Distinct() //no repeats .OrderBy(x => x).ToList(); //sort ascending return(newList); }
//PRIME TEST (1st and 5th rows) public static IEnumerable <int> PrimeRowException() { //get a list of natural numbers... (1, 2, 3, 4, 5, etc) var nums = ListExtension.NumberList(1, 100); var myPrime5s = nums.Where(x => x % 5 == 0); //all numbers divisible by 5 var myPrimeRows = nums.Where(x => x % 6 == 1 || x % 6 == 5); //all numbers 1st and 5th column return(myPrimeRows); }
//PRIME TEST (all exceptions) public static IEnumerable <int> PrimeAllExceptionsTESTING() { //list of numbers (1 to 100) var nums = ListExtension.NumberList(1, 1000); var myPrimeRows = nums.Where(x => x % 6 == 1 || x % 6 == 5); var list = myPrimeRows.ToList(); //need to set to list List <int> exceptions = new List <int>(); var test1 = nums .Where(x => x % 6 == 1 || x % 6 == 5) //filter out the 1st and 5th row first .Where(y => y % 5 == 0 || //filter out 5x... y % 7 == 0 ) .Skip(1); //remove first element (5, 7, etc.) //------ var modList = nums .PrimeFilterRows().ToList() .PrimeSkipFirstElement().ToList(); var newList = new List <int>(); var test5 = new List <int>(); foreach (var mod in modList) { test5 = nums .PrimeFilterRows().ToList() .PrimeFilterMod(mod).ToList() .PrimeSkipFirstElement().ToList(); newList.AddRange(test5); } //newList = newList // .Distinct().ToList(); newList = newList .Distinct() //no repeats .OrderBy(x => x).ToList(); //sort ascending //------ var test4 = nums .PrimeFilterRows().ToList() .PrimeSkipFirstElement(); var test3 = nums .PrimeFilterRows().ToList() .PrimeFilterMod(7).ToList() .PrimeSkipFirstElement().ToList(); var test2 = nums.PrimeFilter(5); //.Where(x => x % 6 == 1 || x % 6 == 5) //filter out the 1st and 5th row first //.Where(y => y % 5 == 0) //filter out 5x... //.Skip(1); //remove first element (5, 7, etc.) var myPrimeExceptions = myPrimeRows.Where(x => (x % 6 == 1 || x % 6 == 5) && //???remove first element from list...(5,7,11,13,17,19...) //???add parameter for higher options //???filter (from range, 5 * 19 = 95, therefore, 5 * (a number) that is higher than limit (100) //??? means that (don't need to test higher than MOD-19)(for a limit of 100) ( (x % 5 == 0) || (x % 7 == 0) || (x % 11 == 0) || (x % 13 == 0) || (x % 17 == 0) || (x % 19 == 0) ) ); //foreach (var mod in list) //{ // var myPrimeExceptions = nums.Where(x => // (x % 6 == 1 || x % 6 == 5) && // (x % mod == 0) // ); // exceptions.AddRange(myPrimeExceptions); //add to list //} return(newList); //return myPrimeExceptions.Distinct(); //return exceptions.Distinct(); //exceptions.OrderBy(x => x).ToList(); }