javaを勉強し始めて3ヶ月も経っていないド素人です。質問したいのは3つの整数を素因数分解を用いた最大公約数と最小公倍数を表示させるプログラムで 「// ?」 の所に何を入力すればいいのかわからい状態です。「// ?」に何を入力すれば良いのでしょうか?
あと「// ? 」以外にもおかしな所があれば教えてもらえるとうれしいです。
public class Main {
public static final int N = 1000;
public static final int COUNT = 168;
public static void main(String args[]){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int[] prime = new int[COUNT];
int count = 0;
for (int i = 0; i < N; i++) {
if (isPrime(i)) {
prime[count] = i;
count++;
}
}
int gcd = gcd3(a, b, c, prime);
System.out.println("Greatest common divisor of " + a + " and " + b + " and " + c + " : " + gcd);
int lcm = lcm3(a, b, c, prime);
System.out.println("Least common multiple of " + a + " and " + b + " and " + c + " : " + lcm);
}
public static boolean isPrime(int num){
if (num <= 1) {
return false;
} else {
for (int i = 2; i < num - 1; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
public static int[] primeFact(int num, int[] prime){
int[] Fact = new int[N];
for (int i = 0; i < prime.length; i++) {
if (num % prime[i] == 0) {
while (num % prime[i] == 0) {
Fact[i] += 1;
num = num / prime[i];
}
}
}
return Fact;
}
public static int gcd3(int a, int b, int c, int[] prime){
// ?
}
public static int lcm3(int a, int b, int c, int[] prime){
// ?
}
}
No.2ベストアンサー
- 回答日時:
a を素因数分解 → factA
b を素因数分解 → factB
c を素因数分解 → factC
factA/B/C より 2 の指数の最大値/最小値 → factD の 2 の指数
factA/B/C より 3 の指数の最大値/最小値 → factD の 3 の指数
...
factA/B/C より 997 の指数の最大値/最小値 → factD の 997 の指数
factD を数値に戻す → 最大公約数/最小公倍数
それ以外の点として
Nまでの素数の配列が new int[COUNT]
素因数分解の配列が new int[N]
なのはおかしい
No.3
- 回答日時:
……というか、「a, b, c の最大公約数」=「「a, b の最大公約数」と c の最大公約数」(も同様)だし、2項の最大公約数は素因数分解しなくてもユークリッドの互除法で出せてその結果から2項の最小公倍数が計算できるから、2項づつを順次計算していけば素因数分解した結果なんていらないと思うんですが、何が何でも素因数分解しなくてはならない理由はございますでしょうか。
http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC% …
No.1
- 回答日時:
例えば。
public static int gcd3(int a, int b, int c, int[] prime){
// ?
}
ですが。
(1) a,b,c, prime の4つの引数について。
それぞれが何であるか、理解できていますか?
(2)gcd3という名前から、3値の最大公約数を求める関数だと思われます。
では、 // ? の部分の内容を『日本語』で書けますか?
※ 英語や他の言語が得意なら、その言語でも結構です。
数学の試験のときに、紙と鉛筆で解こうとしたどうするか、を考えてみるのもよいでしょう。
目的から
public static int gcd3(int a, int b, int c, int[] prime){
return 「3つの整数を素因数分解を用いた最大公約数」
}
等と書ければ解決ですが、そうではありません。
よって、「3つの整数を素因数分解を用いた最大公約数」をより詳細にしていく必要があります。
例えば
public static int gcd3(int a, int b, int c, int[] prime){
「3つの整数を素因数分解」
return 「3つの素因数分解の結果から最大公約数を求める」
}
これでも不十分なので、それぞれをさらに詳細にしていきます。
...
とこれを繰り返して、言語で表現できるところまでにするのがプログラミングです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
メインが含まれていません
-
アプレットは初期化されていません
-
偶数奇数の判定
-
アンマネージDLLで、ダイアログ...
-
c# デリゲート関連の命名について
-
javaで電卓を作りたいのですが...
-
(Swing)JTextFieldを半角のみ入...
-
式の型は配列型で int に解決済...
-
初心者ですが、今javaで簡単な...
-
JAVA エラー 式の開始が不正で...
-
javaのwhile文について
-
java spring でエラーが出て困...
-
デスクトップのアイコンの位置...
-
消費税を計算
-
javaでカレンダー作成
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
JSPでImportエラーになります
-
1~100までの数字を表示したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
式の型は配列型で int に解決済...
-
JAVA エラー 式の開始が不正で...
-
sin曲線とcos曲線を描くプログ...
-
メインが含まれていません
-
JAVAでCの関数ポインタのような...
-
javaでcsvファイル読込時の改行...
-
(Swing)JTextFieldを半角のみ入...
-
DataSet(DataTable)の使い方
-
6桁の数字を重複なしでランダム...
-
c# デリゲート関連の命名について
-
C#で実行時にメソッドの返り値...
-
java spring でエラーが出て困...
-
共有メモリについて
-
randomメゾットについて
-
行の途中から読み込む方法
-
【C#】フォームをなめらかに移動
-
アンマネージDLLで、ダイアログ...
-
偶数奇数の判定
-
javaでカレンダー作成
おすすめ情報
(1)a,b,cは3つの整数でprimeは素数と考えてるのですが正しいでしょうか?
(2)a,b,cを素因数分解→a,b,cの共通の素数(指数が1の数字)を判別(if文?)する→判別した素数を掛けるといった感じでしょうか?
最大公約数なら primeFact で格納したFact[i]の指数1の共通素数を if文で探して掛ければいけるかな?と思ったのですがgcd3の中でFact[i]をどう使えばいいかよくわかってない感じです。