| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| =head1 NAME |
| |
| lap - compute least annihilating power of a number |
| |
| =head1 SYNOPSIS |
| |
| lap <a> <m> |
| |
| =head1 DESCRIPTION |
| |
| The B<lap> program computes the order of I<a> modulo I<m>, for |
| arbitrary precision integers I<a> and I<m>. The B<order> of I<a> |
| modulo I<m> is defined as the smallest positive value I<n> for which |
| I<a> raised to the I<n>th power, modulo I<m>, is equal to 1. The |
| order may not exist, if I<m> is composite. |
| |
| =head1 RESTRICTIONS |
| |
| This program is very slow, especially for large moduli. It is |
| intended as a way to help find primitive elements in a modular field, |
| but it does not do so in a particularly inefficient manner. It was |
| written simply to help verify that a particular candidate does not |
| have an obviously short cycle mod I<m>. |
| |
| =head1 SEE ALSO |
| |
| gcd(1), invmod(1), isprime(1) |
| |
| =head1 AUTHOR |
| |
| Michael J. Fromberger <sting@linguist.dartmouth.edu> |
| Thayer School of Engineering, Hanover, New Hampshire, USA |