mirror of
https://hub.njuu.cf/TheAlgorithms/C-Plus-Plus.git
synced 2023-10-11 13:05:55 +08:00
feat: update CMake version to 3.26.4 (#2486)
* update cmake version
* clang-format and clang-tidy fixes for 402c5627
---------
Co-authored-by: David Leal <halfpacho@gmail.com>
Co-authored-by: github-actions[bot] <github-actions@users.noreply.github.com>
This commit is contained in:
parent
d7a9869dce
commit
2d492834b1
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.9)
|
cmake_minimum_required(VERSION 3.26.4)
|
||||||
project(Algorithms_in_C++
|
project(Algorithms_in_C++
|
||||||
LANGUAGES CXX
|
LANGUAGES CXX
|
||||||
VERSION 1.0.0
|
VERSION 1.0.0
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* @brief A simple program to check if the given number is a [factorial](https://en.wikipedia.org/wiki/Factorial) of some
|
* @brief A simple program to check if the given number is a
|
||||||
* number or not.
|
* [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
|
* @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
|
* positive integer. https://www.mathsisfun.com/numbers/factorial.html
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* @brief
|
* @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
|
* @details
|
||||||
* A prime number is any number that can be divided only by itself and 1. It must
|
* A prime number is any number that can be divided only by itself and 1. It
|
||||||
* be positive and a whole number, therefore any prime number is part of the
|
* must be positive and a whole number, therefore any prime number is part of
|
||||||
* set of natural numbers. The majority of prime numbers are even numbers, with
|
* the set of natural numbers. The majority of prime numbers are even numbers,
|
||||||
* the exception of 2. This algorithm finds prime numbers using this information.
|
* with the exception of 2. This algorithm finds prime numbers using this
|
||||||
* additional ways to solve the prime check problem:
|
* information. additional ways to solve the prime check problem:
|
||||||
* https://cp-algorithms.com/algebra/primality_tests.html#practice-problems
|
* https://cp-algorithms.com/algebra/primality_tests.html#practice-problems
|
||||||
* @author [Omkar Langhe](https://github.com/omkarlanghe)
|
* @author [Omkar Langhe](https://github.com/omkarlanghe)
|
||||||
* @author [ewd00010](https://github.com/ewd00010)
|
* @author [ewd00010](https://github.com/ewd00010)
|
||||||
@ -21,37 +22,37 @@
|
|||||||
* @namespace
|
* @namespace
|
||||||
*/
|
*/
|
||||||
namespace math {
|
namespace math {
|
||||||
/**
|
/**
|
||||||
* @brief Function to check if the given number is prime or not.
|
* @brief Function to check if the given number is prime or not.
|
||||||
* @param num number to be checked.
|
* @param num number to be checked.
|
||||||
* @return true if number is a prime
|
* @return true if number is a prime
|
||||||
* @return false if number is not 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
|
||||||
*/
|
*/
|
||||||
bool is_prime(int64_t num) {
|
if (num <= 1) {
|
||||||
/*!
|
return false;
|
||||||
* Reduce all possibilities of a number which cannot be prime with the first
|
} else if (num == 2 || num == 3) {
|
||||||
* 3 if, else if conditionals. Example: Since no even number, except 2 can
|
return true;
|
||||||
* be a prime number and the next prime we find after our checks is 5,
|
} else if (num % 2 == 0 || num % 3 == 0) {
|
||||||
* we will start the for loop with i = 5. then for each loop we increment
|
return false;
|
||||||
* i by +6 and check if i or i+2 is a factor of the number; if it's a factor
|
} else {
|
||||||
* then we will return false. otherwise, true will be returned after the
|
for (int64_t i = 5; i * i <= num; i = i + 6) {
|
||||||
* loop terminates at the terminating condition which is i*i <= num
|
if (num % i == 0 || num % (i + 2) == 0) {
|
||||||
*/
|
return false;
|
||||||
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
|
} // namespace math
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* @brief
|
* @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
|
* The
|
||||||
* performing explicit character comparisons at different alignments. Instead of
|
* [Boyer–Moore](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string-search_algorithm)
|
||||||
* a brute-force search of all alignments (of which there are n - m + 1),
|
* 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
|
* Boyer–Moore uses information gained by preprocessing P to skip as many
|
||||||
* alignments as possible.
|
* alignments as possible.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user