# gcd_lcm - GCD and LCM

## Introduction

detail/gcd_lcm.hpp provides two generic integer algorithms: greatest common divisor and least common multiple.

## Synopsis

    namespace details {
    namespace pool {

    template <typename Integer>
    Integer gcd(Integer A, Integer B);

    template <typename Integer>
    Integer lcm(Integer A, Integer B);

    } // namespace pool
    } // namespace details

## Semantics

Symbol Table
Symbol | Meaning
--- | ---
Integer | An integral type
A, B | Values of type Integer

Semantics
Expression | Result Type | Precondition | Notes
--- | --- | --- | ---
gcd(A, B) | Integer | A > 0 && B > 0 | Returns the greatest common divisor of A and B
lcm(A, B) | Integer | A > 0 && B > 0 | Returns the least common multiple of A and B

## Implementation Notes

For faster results, ensure A > B

## Dependencies

None.

## Future Directions

This header may be replaced by a Boost algorithms library.

Copyright © 2000, 2001 Stephen Cleary (shammah@voyager.net)

This file can be redistributed and/or modified under the terms found in copyright.html

This software and its documentation is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose.