• 締切済み

Javaのプログラムを教えてほしいのですが

Javaを使ってのガウス素数を判定するプログラムを教えてください。 すいません、よろしくお願いします。

みんなの回答

回答No.4

素数の判定のアルゴリズムなんてぐぐればそこれじゅうに転がってるけど? まず自分の手を動かしな。 それでできないなら、 「ここまでできました。○○するところができません。  ××でやってみて、△△になると思ったが、□□になりました。」 って感じでアドバイスを求めましょう。 本人にやる気がないなら無理。 やる気があるならそれを見せな。

回答No.3

Javaの経験がないとのことなのですが、 以下でわかりますか? ガウス素数の判定は以下であってますか? ---以下ガウス素数判定--- 複素整数 (実部も虚部も整数の複素数) a + b i がガウス素数であるとは,これを割り切る非自明な複素整数が存在しないことをいう. たとえば 5 は素数だがガウス素数ではない ( (2+i)(2-i) = 5 ). ガウス素数は次で完全に特徴付けられる.i をかけて回転できるため, a >= 0, b >= 0 と仮定して一般性を失わない. a = 0 のとき b が素数かつ b mod 4 == 3 b = 0 のとき a が素数かつ a mod 4 == 3 それ以外のとき a^2 + b^2 が素数. ------------------------ まず >a >= 0, b >= 0 と仮定して一般性を失わない. とあるので、a、bが負の場合は、正にしてあげましょう。 if(a < 0){   a = -a; } if(b < 0){   b = -b; } > a = 0 のとき b が素数かつ b mod 4 == 3 if(a == 0){   //a=0のとき   boolean prime = isPrime(b);   boolean bmod4 = b % 4 == 3;   return prime && bmod4; } > b = 0 のとき a が素数かつ a mod 4 == 3 if(b == 0){   //b=0のとき   boolean prime = isPrime(a);   boolean amod4 = a % 4 == 3;   return prime && amod4; } > それ以外のとき a^2 + b^2 が素数. return isPrime(a*a+b*b); 別途引数が素数かどうか判定するメソッド boolean isPrime(int i) を作ってください。 ※インデントのために全角スペースを入れてますので、  別途半角スペースなどに置換して下さい。

hiro12357
質問者

補足

質問者です。 回答にありました以下の部分をどのようにしていいのかわかりませんでした。 「別途引数が素数かどうか判定するメソッド boolean isPrime(int i) を作ってください。」 すいませんが、回答願えないでしょうか。よろしくお願いします。

回答No.2

プログラムがわからないって言われて、 質問者のわからない箇所をピンポイントに答えられる人なんていないと思うけど? まずはjavaでプログラム組んだことある? から始めましょうか。

hiro12357
質問者

補足

質問者です。 Javaの経験はほとんどありません。 初歩的な参考書に載っている基本的なことしかわかりません。

回答No.1

自分でガウス素数の判定方法はわかってるの? もっと細かく何がわからないのかを書かないと、 課題の丸投げ で削除されますよ。

hiro12357
質問者

補足

質問者ですが、ガウス素数の判定方法は理解しています。 ただ、プログラムの内容が分かればいいのですが。

関連するQ&A