NetBSD/gnu/usr.bin/groff/libgroff/prime.cc

27 lines
385 B
C++

#include <math.h>
int is_prime(unsigned n)
{
if (n <= 3)
return 1;
if (!(n & 1))
return 0;
if (n % 3 == 0)
return 0;
unsigned lim = unsigned(sqrt((double)n));
unsigned d = 5;
for (;;) {
if (d > lim)
break;
if (n % d == 0)
return 0;
d += 2;
if (d > lim)
break;
if (n % d == 0)
return 0;
d += 4;
}
return 1;
}