性格悪い人が優勝

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

A 回答 (4件)

素数の判定のアルゴリズムなんてぐぐればそこれじゅうに転がってるけど?


まず自分の手を動かしな。
それでできないなら、
「ここまでできました。○○するところができません。
 ××でやってみて、△△になると思ったが、□□になりました。」
って感じでアドバイスを求めましょう。

本人にやる気がないなら無理。
やる気があるならそれを見せな。

この回答への補足

補足日時:2011/12/02 23:27
    • good
    • 0
この回答へのお礼

お礼日時:-0001/11/30 00:00

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)
を作ってください。」

すいませんが、回答願えないでしょうか。よろしくお願いします。

補足日時:2011/12/01 21:07
    • good
    • 0

プログラムがわからないって言われて、


質問者のわからない箇所をピンポイントに答えられる人なんていないと思うけど?

まずはjavaでプログラム組んだことある?
から始めましょうか。

この回答への補足

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

補足日時:2011/11/30 17:40
    • good
    • 0

自分でガウス素数の判定方法はわかってるの?


もっと細かく何がわからないのかを書かないと、
課題の丸投げ
で削除されますよ。

この回答への補足

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

補足日時:2011/11/29 21:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!