C 语言中求两个值的最小公倍数的程序



两个值的最小公倍数或最小公倍数是两个值的倍数中的最小正值。

例如 3 和 4 的倍数为:

3 → 3、6、9、12、15 ...

4→ 4、8、12、16、20 ...

两个数的最小公倍数是 12,因此 3 和 4 的最小公倍数是 12。

算法

该程序的算法可以如下得出:

START
   Step 1 → Initialize A and B with positive integers
   Step 2 → Store maximum of A & B to max
   Step 3 → Check if max is divisible by A and B
   Step 4 → If divisible, Display max as LCM
   Step 5 → If not divisible then step increase max, goto step 3
STOP

伪代码

我们现在为该程序推导出伪代码:

procedure even_odd()
   
   Initialize A and B
   max = max(A, B)
   WHILE TRUE
      IF max is divisible by A and B THEN
         LCM = max
         BREAK
      ENDIF
      Increment max
   END WHILE
   DISPLAY LCM

end procedure

实现

该算法的实现如下:

#include<stdio.h>

int main() {
   int a, b, max, step, lcm;

   a   = 3;
   b   = 4;
   lcm = 0;

   if(a > b)
      max = step = a;
   else
      max = step = b;

   while(1) {
      if(max%a == 0 && max%b == 0) {
         lcm = max;
         break;    
      }

      max += step;
   }

   printf("LCM is %d", lcm);
   return 0;
}

输出

程序的输出应该是:

LCM is 12
mathematical_programs_in_c.htm
广告