diff options
| author | svn2git <svn2git@FreeBSD.org> | 1993-11-01 08:00:00 +0000 |
|---|---|---|
| committer | svn2git <svn2git@FreeBSD.org> | 1993-11-01 08:00:00 +0000 |
| commit | 8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (patch) | |
| tree | c5b2ce776438e0a52b492a2ab6ab41360b8ba1f6 /gnu/groff/libgroff/prime.cc | |
Release FreeBSD 1.0upstream/1.0.0_cvsrelease/1.0.0_cvs
This commit was manufactured to restore the state of the 1.0-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
Diffstat (limited to 'gnu/groff/libgroff/prime.cc')
| -rw-r--r-- | gnu/groff/libgroff/prime.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gnu/groff/libgroff/prime.cc b/gnu/groff/libgroff/prime.cc new file mode 100644 index 000000000000..531856c2a59a --- /dev/null +++ b/gnu/groff/libgroff/prime.cc @@ -0,0 +1,28 @@ +extern "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; +} |
