aboutsummaryrefslogtreecommitdiff
path: root/c05/ex07/ft_find_next_prime.c
diff options
context:
space:
mode:
Diffstat (limited to 'c05/ex07/ft_find_next_prime.c')
-rw-r--r--c05/ex07/ft_find_next_prime.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/c05/ex07/ft_find_next_prime.c b/c05/ex07/ft_find_next_prime.c
new file mode 100644
index 0000000..a83f308
--- /dev/null
+++ b/c05/ex07/ft_find_next_prime.c
@@ -0,0 +1,40 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_find_next_prime.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 07:50:11 by cacharle #+# #+# */
+/* Updated: 2019/07/07 08:29:02 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+
+int is_prime(int nb)
+{
+ int i;
+
+ if (nb <= 1)
+ return (0);
+ if (nb <= 3)
+ return (1);
+ if (nb % 2 == 0 || nb % 3 == 0)
+ return (0);
+ i = 5;
+ while (i * i <= nb)
+ {
+ if (nb % i == 0 || nb % (i + 2) == 0)
+ return (0);
+ i += 6;
+ }
+ return (1);
+}
+
+int ft_find_next_prime(int nb)
+{
+ while (!is_prime(nb))
+ nb++;
+ return (nb);
+}
+