Fixed bug in getPrimes where it would skip adding 2 on odd numbers

This commit is contained in:
Matthew Ellison
2019-02-08 18:45:56 -05:00
parent e3bdd3e0f9
commit 6a06c2f1aa

View File

@@ -96,13 +96,11 @@ std::vector<T> getPrimes(T goalNumber){
std::vector<T> primes; std::vector<T> primes;
bool foundFactor = false; bool foundFactor = false;
//If the number is 0 or a negative number return an empty vector //If the number is 1, 0, or a negative number return an empty vector
if(goalNumber < 1){ if(goalNumber <= 1){
return primes; return primes;
} }
else{
//If the number is even 2 is a factor
if((goalNumber % 2) == 0){
primes.push_back(2); primes.push_back(2);
} }
//We can now start at 3 and skip all of the even numbers //We can now start at 3 and skip all of the even numbers
@@ -134,8 +132,8 @@ std::vector<T> getNumPrimes(T numberOfPrimes){
primes.reserve(numberOfPrimes); //Saves cycles later primes.reserve(numberOfPrimes); //Saves cycles later
bool foundFactor = false; bool foundFactor = false;
//If the number is 0 or a negative number return an empty vector //If the number is 1, 0, or a negative number return an empty vector
if(numberOfPrimes < 1){ if(numberOfPrimes <= 1){
return primes; return primes;
} }
//Otherwise 2 is the first prime number //Otherwise 2 is the first prime number