From 6a06c2f1aa410323b9ba520cfc3b79ea8afe974e Mon Sep 17 00:00:00 2001 From: Matthew Ellison Date: Fri, 8 Feb 2019 18:45:56 -0500 Subject: [PATCH] Fixed bug in getPrimes where it would skip adding 2 on odd numbers --- Algorithms.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Algorithms.hpp b/Algorithms.hpp index 8473d0f..3e3ee7f 100644 --- a/Algorithms.hpp +++ b/Algorithms.hpp @@ -96,13 +96,11 @@ std::vector getPrimes(T goalNumber){ std::vector primes; bool foundFactor = false; - //If the number is 0 or a negative number return an empty vector - if(goalNumber < 1){ + //If the number is 1, 0, or a negative number return an empty vector + if(goalNumber <= 1){ return primes; } - - //If the number is even 2 is a factor - if((goalNumber % 2) == 0){ + else{ primes.push_back(2); } //We can now start at 3 and skip all of the even numbers @@ -134,8 +132,8 @@ std::vector getNumPrimes(T numberOfPrimes){ primes.reserve(numberOfPrimes); //Saves cycles later bool foundFactor = false; - //If the number is 0 or a negative number return an empty vector - if(numberOfPrimes < 1){ + //If the number is 1, 0, or a negative number return an empty vector + if(numberOfPrimes <= 1){ return primes; } //Otherwise 2 is the first prime number