linux/lib/math/lcm.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-only
   2#include <linux/compiler.h>
   3#include <linux/gcd.h>
   4#include <linux/export.h>
   5#include <linux/lcm.h>
   6
   7/* Lowest common multiple */
   8unsigned long lcm(unsigned long a, unsigned long b)
   9{
  10        if (a && b)
  11                return (a / gcd(a, b)) * b;
  12        else
  13                return 0;
  14}
  15EXPORT_SYMBOL_GPL(lcm);
  16
  17unsigned long lcm_not_zero(unsigned long a, unsigned long b)
  18{
  19        unsigned long l = lcm(a, b);
  20
  21        if (l)
  22                return l;
  23
  24        return (b ? : a);
  25}
  26EXPORT_SYMBOL_GPL(lcm_not_zero);
  27