diff --git a/math/number-theory/is-prime.hpp b/math/number-theory/is-prime.hpp index 0552a0c1..2edfa553 100644 --- a/math/number-theory/is-prime.hpp +++ b/math/number-theory/is-prime.hpp @@ -3,6 +3,7 @@ #include bool is_prime(std::int64_t x) { + if (x < 2) return false; for (std::int64_t i = 2; i * i <= x; i++) { if (x % i == 0) return false; } diff --git a/test/unittest/is-prime.test.cpp b/test/unittest/is-prime.test.cpp new file mode 100644 index 00000000..a445c0d6 --- /dev/null +++ b/test/unittest/is-prime.test.cpp @@ -0,0 +1,15 @@ +// competitive-verifier: STANDALONE + +#include "../../template/template.hpp" + +#include "../../math/number-theory/is-prime.hpp" + +int main() { + assert(!is_prime(0)); + assert(!is_prime(1)); + assert(is_prime(2)); + assert(is_prime(3)); + assert(!is_prime(4)); + assert(is_prime(999999937)); + assert(!is_prime(1000000000)); +}