Learn-c-by-examples-program-to-find-lcm-in-c
提供:Dev Guides
CでLCMを見つけるプログラム
L.C.M. または2つの値の最小公倍数は、両方の値の倍数である最小の正の値です。
たとえば 3と4の倍数は-
*3* →3、6、9、 *12* 、15 ...
*4* →4、8、 *12* 、16、20 ...
両方の最小の倍数は12であるため、3と4のLCMは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