- 締切済み
Javaのプログラムを教えてほしいのですが
Javaを使ってのガウス素数を判定するプログラムを教えてください。 すいません、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- pcbeginner
- ベストアンサー率46% (261/560)
素数の判定のアルゴリズムなんてぐぐればそこれじゅうに転がってるけど? まず自分の手を動かしな。 それでできないなら、 「ここまでできました。○○するところができません。 ××でやってみて、△△になると思ったが、□□になりました。」 って感じでアドバイスを求めましょう。 本人にやる気がないなら無理。 やる気があるならそれを見せな。
- pcbeginner
- ベストアンサー率46% (261/560)
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) を作ってください。 ※インデントのために全角スペースを入れてますので、 別途半角スペースなどに置換して下さい。
補足
質問者です。 回答にありました以下の部分をどのようにしていいのかわかりませんでした。 「別途引数が素数かどうか判定するメソッド boolean isPrime(int i) を作ってください。」 すいませんが、回答願えないでしょうか。よろしくお願いします。
- pcbeginner
- ベストアンサー率46% (261/560)
プログラムがわからないって言われて、 質問者のわからない箇所をピンポイントに答えられる人なんていないと思うけど? まずはjavaでプログラム組んだことある? から始めましょうか。
補足
質問者です。 Javaの経験はほとんどありません。 初歩的な参考書に載っている基本的なことしかわかりません。
- pcbeginner
- ベストアンサー率46% (261/560)
自分でガウス素数の判定方法はわかってるの? もっと細かく何がわからないのかを書かないと、 課題の丸投げ で削除されますよ。
補足
質問者ですが、ガウス素数の判定方法は理解しています。 ただ、プログラムの内容が分かればいいのですが。