を利用して、x、y~y+9の最小公倍数を求めるプログラムを作ろうと試みました。
実行はできるのですが、xとyの値を入力したところでプログラムが固まってしまいます。
結果、最小公倍数を表示することができません。
#include <stdio.h>
int GCD(int x, int y);//最大公約数を求める
int KEISAN(int x, int y);//最小公倍数に変換する
int main(){
int x,y,LCM_num;
puts("xの値を入力");
scanf("%d",&x);
puts("yの値を入力");
scanf("%d",&y);
LCM_num = KEISAN(x,y);
printf("%dと、%dから%dまでの最小公倍数は%dです",x,y,y+9,LCM_num);
return 0;
}
int GCD(int x, int y){
int r;
while((r = x%y) =! 0){//ユークリッドの互除法
x = y;
y = r;
}
return y;
}
int KEISAN(int x, int y){
int i;
for(i=y;i<y+10;y++){
y = i;
x = x*y / GCD(x,y);
}
return x;
}
もしよろしければ、ご教授お願いします。