
Java初心者です。
最小公倍数を求めるプログラムを作っているのですが、そこで使っているfor文がなぜか無いもののように認識されてしまっています。(試しにforで変数(M)に掛ける数を2とかにしてみたのですが、System.out.printで出される値が初期値のままだったことで気づきました)
色々試していたのでプログラムはかなり無茶苦茶になってしまっています。
ずっと悩んでるのですがどうしてもわからず、質問させていただきました。
質問の内容が分かりにくく、申し訳ありません。よろしくお願いします。
import java.util.Scanner;
public class LCM_GCD {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int M= sc.nextInt();
int N=sc.nextInt();//ここまでは確実に動いている。M,Nの判定もできている
for(int i=1;M<=i;i++) {
for(int z=1;M==z;z++) { //ここでtwoがoneを超えるまでループする
N=N*z;
if(M<N||M>N) { //もしもMがNより大きい、もしくは小さかった場合break
z++;
break;
}
}
M=M*i;
}
System.out.println("最小公倍数は"+M);
}
}
No.2
- 回答日時:
import java.util.Scanner;
public class LCM_GCD {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Long M = sc.nextLong();
Long N = sc.nextLong();
System.out.println("最小公倍数は" + Lcm(M, N));
}
static Long Lcm(Long M, Long N) {
return M / Gcd(M, N) * N;
}
static Long Gcd(Long M, Long N) {
if (N == 0) {
return M;
} else {
return Gcd(N, M % N);
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
メインが含まれていません
-
C#で判断文(三択)の省略形は...
-
SwingでJtableのヘッダ行が表示...
-
JAVA エラー 式の開始が不正で...
-
JAVAでCの関数ポインタのような...
-
classを使って座標軸を求めるコ...
-
(Swing)JTextFieldを半角のみ入...
-
Comparatorを使用したソートに...
-
java spring でエラーが出て困...
-
1~100までの数字を表示したい
-
C言語 重複しない4ケタの乱数...
-
オブジェクトの中のプロパティ...
-
C言語のポインターに関する警告
-
ORA-01858: 数値を指定する箇所...
-
IF関数でEmpty値を設定する方法。
-
System.err. printlnとSystem.o...
-
動的配列が存在(要素が有る)か...
-
パソコンキーボードで時分秒を...
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
メインが含まれていません
-
式の型は配列型で int に解決済...
-
javaでカレンダー作成
-
DataSet(DataTable)の使い方
-
Java 初心者 int型の取り扱い方
-
java初心者の質問(3つの整数の...
-
javaでcsvファイル読込時の改行...
-
Java 日付の加算がうまくいき...
-
JAVA エラー 式の開始が不正で...
-
6桁の数字を重複なしでランダム...
-
コンパイルできません
-
SwingでJtableのヘッダ行が表示...
-
C#で実行時にメソッドの返り値...
-
intが負の時に投げる例外はあり...
-
意味がわかりません
-
コンパイラが注意してくる
-
複数のボタンを配置し、それぞ...
-
Threadに関するの質問
-
C#でバブルソート
おすすめ情報
途中、コメント文にtwoとoneと言う宣言されていない変数が出ていますが、twoとoneと書くのが煩わしく感じてしまい「M」と「N」に変更してしまい、その際に変更し忘れたものです。
また、回答者リクエストに20歳以下にチェックを入れてしまったのですが、ただの間違えです。
ややこしくしてしまい申し訳ございません。