aboutsummaryrefslogtreecommitdiff
path: root/c05/ex07
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-07-09 10:23:25 +0200
committerCharles <sircharlesaze@gmail.com>2019-07-09 10:23:25 +0200
commit2bc94312042100432ec332abd3c00104d0d095a2 (patch)
tree6c60a0fde7b2d8bc984845f6a412171df977e1dc /c05/ex07
parent03b4d8a03fb1b2cf93aaac0dc9d317ff9c2ba705 (diff)
downloadpiscine-2bc94312042100432ec332abd3c00104d0d095a2.tar.gz
piscine-2bc94312042100432ec332abd3c00104d0d095a2.tar.bz2
piscine-2bc94312042100432ec332abd3c00104d0d095a2.zip
c07/c08 start, c05 faster, better, stronger
Diffstat (limited to 'c05/ex07')
-rw-r--r--c05/ex07/ft_find_next_prime.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/c05/ex07/ft_find_next_prime.c b/c05/ex07/ft_find_next_prime.c
index e17ca94..80227da 100644
--- a/c05/ex07/ft_find_next_prime.c
+++ b/c05/ex07/ft_find_next_prime.c
@@ -6,13 +6,14 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/07 07:50:11 by cacharle #+# #+# */
-/* Updated: 2019/07/08 12:09:16 by cacharle ### ########.fr */
+/* Updated: 2019/07/09 10:20:25 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
int is_prime(int nb)
{
- int i;
+ long unsigned int i;
+ long unsigned int nbu;
if (nb <= 1)
return (0);
@@ -20,12 +21,15 @@ int is_prime(int nb)
return (1);
if (nb % 2 == 0 || nb % 3 == 0)
return (0);
- i = 5;
- while (i * i <= nb)
+ i = 1;
+ nbu = nb;
+ while (i * i <= nbu)
{
- if (nb % i == 0 || nb % (i + 2) == 0)
+ if (nbu % (i * 6 - 1) == 0)
return (0);
- i += 6;
+ if (nbu % (i * 6 + 1) == 0)
+ return (0);
+ i += 1;
}
return (1);
}