...one of the most highly
regarded and expertly designed C++ library projects in the
world.

— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards

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

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

Symbol | Meaning |
---|---|

Integer | An integral type |

A, B | Values of type Integer |

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 |

For faster results, ensure A > B

None.

This header may be replaced by a Boost algorithms library.

Copyright © 2000, 2001 Stephen Cleary (scleary AT jerviswebb DOT com)

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.