diff --git a/CMakeLists.txt b/CMakeLists.txt index 245615de4..7ccaf4c46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.26.4) +cmake_minimum_required(VERSION 3.9) project(Algorithms_in_C++ LANGUAGES CXX VERSION 1.0.0 diff --git a/math/check_factorial.cpp b/math/check_factorial.cpp index 0be45b895..5573f4f83 100644 --- a/math/check_factorial.cpp +++ b/math/check_factorial.cpp @@ -1,7 +1,7 @@ /** * @file - * @brief A simple program to check if the given number is a - * [factorial](https://en.wikipedia.org/wiki/Factorial) of some number or not. + * @brief A simple program to check if the given number is a [factorial](https://en.wikipedia.org/wiki/Factorial) of some + * number or not. * * @details A factorial number is the sum of k! where any value of k is a * positive integer. https://www.mathsisfun.com/numbers/factorial.html diff --git a/math/check_prime.cpp b/math/check_prime.cpp index ebd48cab5..a05bd8517 100644 --- a/math/check_prime.cpp +++ b/math/check_prime.cpp @@ -1,14 +1,13 @@ /** * @file * @brief - * A simple program to check if the given number is - * [Prime](https://en.wikipedia.org/wiki/Primality_test) or not. + * A simple program to check if the given number is [Prime](https://en.wikipedia.org/wiki/Primality_test) or not. * @details - * A prime number is any number that can be divided only by itself and 1. It - * must be positive and a whole number, therefore any prime number is part of - * the set of natural numbers. The majority of prime numbers are even numbers, - * with the exception of 2. This algorithm finds prime numbers using this - * information. additional ways to solve the prime check problem: + * A prime number is any number that can be divided only by itself and 1. It must + * be positive and a whole number, therefore any prime number is part of the + * set of natural numbers. The majority of prime numbers are even numbers, with + * the exception of 2. This algorithm finds prime numbers using this information. + * additional ways to solve the prime check problem: * https://cp-algorithms.com/algebra/primality_tests.html#practice-problems * @author [Omkar Langhe](https://github.com/omkarlanghe) * @author [ewd00010](https://github.com/ewd00010) @@ -22,37 +21,37 @@ * @namespace */ namespace math { -/** - * @brief Function to check if the given number is prime or not. - * @param num number to be checked. - * @return true if number is a prime - * @return false if number is not a prime. - */ -bool is_prime(int64_t num) { - /*! - * Reduce all possibilities of a number which cannot be prime with the first - * 3 if, else if conditionals. Example: Since no even number, except 2 can - * be a prime number and the next prime we find after our checks is 5, - * we will start the for loop with i = 5. then for each loop we increment - * i by +6 and check if i or i+2 is a factor of the number; if it's a factor - * then we will return false. otherwise, true will be returned after the - * loop terminates at the terminating condition which is i*i <= num + /** + * @brief Function to check if the given number is prime or not. + * @param num number to be checked. + * @return true if number is a prime + * @return false if number is not a prime. */ - if (num <= 1) { - return false; - } else if (num == 2 || num == 3) { - return true; - } else if (num % 2 == 0 || num % 3 == 0) { - return false; - } else { - for (int64_t i = 5; i * i <= num; i = i + 6) { - if (num % i == 0 || num % (i + 2) == 0) { - return false; + bool is_prime(int64_t num) { + /*! + * Reduce all possibilities of a number which cannot be prime with the first + * 3 if, else if conditionals. Example: Since no even number, except 2 can + * be a prime number and the next prime we find after our checks is 5, + * we will start the for loop with i = 5. then for each loop we increment + * i by +6 and check if i or i+2 is a factor of the number; if it's a factor + * then we will return false. otherwise, true will be returned after the + * loop terminates at the terminating condition which is i*i <= num + */ + if (num <= 1) { + return false; + } else if (num == 2 || num == 3) { + return true; + } else if (num % 2 == 0 || num % 3 == 0) { + return false; + } else { + for (int64_t i = 5; i * i <= num; i = i + 6) { + if (num % i == 0 || num % (i + 2) == 0) { + return false; + } } } + return true; } - return true; -} } // namespace math /** diff --git a/strings/boyer_moore.cpp b/strings/boyer_moore.cpp index de79008e3..a8c4cbf8d 100644 --- a/strings/boyer_moore.cpp +++ b/strings/boyer_moore.cpp @@ -1,11 +1,9 @@ /** * @file * @brief - * The - * [Boyer–Moore](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string-search_algorithm) - * algorithm searches for occurrences of pattern P in text T by performing - * explicit character comparisons at different alignments. Instead of a - * brute-force search of all alignments (of which there are n - m + 1), + * The [Boyer–Moore](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string-search_algorithm) algorithm searches for occurrences of pattern P in text T by + * performing explicit character comparisons at different alignments. Instead of + * a brute-force search of all alignments (of which there are n - m + 1), * Boyer–Moore uses information gained by preprocessing P to skip as many * alignments as possible. *