From 723a8f7e6c9d4763fc18ddd262f2759c58fda0a7 Mon Sep 17 00:00:00 2001 From: Mattrixwv Date: Wed, 30 Jun 2021 13:37:14 -0400 Subject: [PATCH] Added functions to determine if a number is prime and create a string from a list/array --- CSClasses/Algorithms.cs | 67 ++++++++++++++++++++ TestCSClasses/TestAlgorithms.cs | 108 ++++++++++++++++++++++++++++++++ 2 files changed, 175 insertions(+) diff --git a/CSClasses/Algorithms.cs b/CSClasses/Algorithms.cs index 067fbcc..c005e2a 100644 --- a/CSClasses/Algorithms.cs +++ b/CSClasses/Algorithms.cs @@ -486,6 +486,49 @@ namespace mee{ primes.Sort(); return primes; } + //This function determines whether the number passed into it is a prime + public static bool IsPrime(int possiblePrime){ + if(possiblePrime <= 3){ + return possiblePrime > 1; + } + else if(((possiblePrime % 2) == 0) || ((possiblePrime % 3) == 0)){ + return false; + } + for(int cnt = 5;(cnt * cnt) <= possiblePrime;cnt += 6){ + if(((possiblePrime % cnt) == 0) || ((possiblePrime % (cnt + 2)) == 0)){ + return false; + } + } + return true; + } + public static bool IsPrime(long possiblePrime){ + if(possiblePrime <= 3){ + return possiblePrime > 1; + } + else if(((possiblePrime % 2) == 0) || ((possiblePrime % 3) == 0)){ + return false; + } + for(long cnt = 5;(cnt * cnt) <= possiblePrime;cnt += 6){ + if(((possiblePrime % cnt) == 0) || ((possiblePrime % (cnt + 2)) == 0)){ + return false; + } + } + return true; + } + public static bool IsPrime(BigInteger possiblePrime){ + if(possiblePrime <= 3){ + return possiblePrime > 1; + } + else if(((possiblePrime % 2) == 0) || ((possiblePrime % 3) == 0)){ + return false; + } + for(BigInteger cnt = 5;(cnt * cnt) <= possiblePrime;cnt += 6){ + if(((possiblePrime % cnt) == 0) || ((possiblePrime % (cnt + 2)) == 0)){ + return false; + } + } + return true; + } //These functions return all the divisors of goalNumber public static List GetDivisors(int goalNumber){ List divisors = new List(); @@ -901,5 +944,29 @@ namespace mee{ } } } + //Print a list + public static string PrintList(List list){ + string listString = "["; + for(int cnt = 0;cnt < list.Count;++cnt){ + listString += list[cnt]; + if(cnt < list.Count - 1){ + listString += ", "; + } + } + listString += "]"; + return listString; + } + //Print an array + public static string PrintArray(T[] array){ + string arrayString = "["; + for(int cnt = 0;cnt < array.Length;++cnt){ + arrayString += array[cnt]; + if(cnt < array.Length - 1){ + arrayString += ", "; + } + } + arrayString += "]"; + return arrayString; + } } } diff --git a/TestCSClasses/TestAlgorithms.cs b/TestCSClasses/TestAlgorithms.cs index eaa83b7..ef8a417 100644 --- a/TestCSClasses/TestAlgorithms.cs +++ b/TestCSClasses/TestAlgorithms.cs @@ -120,6 +120,56 @@ namespace TestCSClasses{ CollectionAssert.AreEqual(bigCorrectAnswer, bigAnswer, "GetNumPrimes BigInteger failes"); } [TestMethod] + public void TestIsPrime(){ + //Test 1 + int num = 2; + bool correctAnswer = true; + bool answer = mee.Algorithms.IsPrime(num); + Assert.AreEqual(correctAnswer, answer, "IsPrime 1 failed"); + //Test 2 + num = 97; + correctAnswer = true; + answer = mee.Algorithms.IsPrime(num); + Assert.AreEqual(correctAnswer, answer, "IsPrime 2 failed"); + //Test 3 + num = 1000; + correctAnswer = false; + answer = mee.Algorithms.IsPrime(num); + Assert.AreEqual(correctAnswer, answer, "IsPrime 3 failed"); + + //Test 4 + long longNum = 2; + correctAnswer = true; + answer = mee.Algorithms.IsPrime(longNum); + Assert.AreEqual(correctAnswer, answer, "IsPrime long 1 failed"); + //Test 5 + longNum = 97; + correctAnswer = true; + answer = mee.Algorithms.IsPrime(longNum); + Assert.AreEqual(correctAnswer, answer, "IsPrime long 2 failed"); + //Test 6 + longNum = 1000; + correctAnswer = false; + answer = mee.Algorithms.IsPrime(longNum); + Assert.AreEqual(correctAnswer, answer, "IsPrime long 3 failed"); + + //Test 7 + BigInteger bigNum = 2; + correctAnswer = true; + answer = mee.Algorithms.IsPrime(bigNum); + Assert.AreEqual(correctAnswer, answer, "IsPrime Big 1 failed"); + //Test 8 + bigNum = 97; + correctAnswer = true; + answer = mee.Algorithms.IsPrime(bigNum); + Assert.AreEqual(correctAnswer, answer, "IsPrime Big 2 failed"); + //Test 9 + bigNum = 1000; + correctAnswer = false; + answer = mee.Algorithms.IsPrime(bigNum); + Assert.AreEqual(correctAnswer, answer, "IsPrime Big 3 failed"); + } + [TestMethod] public void TestGetDivisors(){ //Test 1 List correctAnswer = new List(){1, 2, 4, 5, 10, 20, 25, 50, 100}; @@ -422,5 +472,63 @@ namespace TestCSClasses{ } CollectionAssert.AreEqual(bigCorrectAnswer, bigAnswer, "SieveOfEratosthenesBig failed"); } + [TestMethod] + public void TestPrintList(){ + //Test 1 + List nums = new List(); + string correctAnswer = "[]"; + string answer = mee.Algorithms.PrintList(nums); + Assert.AreEqual(correctAnswer, answer, "PrintList 1 failed"); + //Test 2 + nums = new List(){1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + correctAnswer = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"; + answer = mee.Algorithms.PrintList(nums); + Assert.AreEqual(correctAnswer, answer, "PrintList 2 failed"); + //Test 3 + nums = new List(){-3, -2, -1, 0, 1, 2, 3}; + correctAnswer = "[-3, -2, -1, 0, 1, 2, 3]"; + answer = mee.Algorithms.PrintList(nums); + Assert.AreEqual(correctAnswer, answer, "PrintList 3 failed"); + + //Test 4 + List strings = new List(){"A", "B", "C"}; + correctAnswer = "[A, B, C]"; + answer = mee.Algorithms.PrintList(strings); + Assert.AreEqual(correctAnswer, answer, "PrintList 1 failed"); + //Test 5 + strings = new List(){"abc", "def", "ghi"}; + correctAnswer = "[abc, def, ghi]"; + answer = mee.Algorithms.PrintList(strings); + Assert.AreEqual(correctAnswer, answer, "PrintList 2 failed"); + } + [TestMethod] + public void TestPrintArray(){ + //Test 1 + int[] nums = new int[]{}; + string correctAnswer = "[]"; + string answer = mee.Algorithms.PrintArray(nums); + Assert.AreEqual(correctAnswer, answer, "PrintArray 1 failed"); + //Test 2 + nums = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + correctAnswer = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"; + answer = mee.Algorithms.PrintArray(nums); + Assert.AreEqual(correctAnswer, answer, "PrintArray 2 failed"); + //Test 3 + nums = new int[]{-3, -2, -1, 0, 1, 2, 3}; + correctAnswer = "[-3, -2, -1, 0, 1, 2, 3]"; + answer = mee.Algorithms.PrintArray(nums); + Assert.AreEqual(correctAnswer, answer, "PrintArray 3 failed"); + + //Test 4 + string[] strings = new string[]{"A", "B", "C"}; + correctAnswer = "[A, B, C]"; + answer = mee.Algorithms.PrintArray(strings); + Assert.AreEqual(correctAnswer, answer, "PrintArray 1 failed"); + //Test 5 + strings = new string[]{"abc", "def", "ghi"}; + correctAnswer = "[abc, def, ghi]"; + answer = mee.Algorithms.PrintArray(strings); + Assert.AreEqual(correctAnswer, answer, "PrintArray 2 failed"); + } } }