重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Javaでプログラムを作っています。

S^2 = 23 mod 75という等式があったとします。
(S^2 = 23 mod 75は、23を75で割ったあまりの数が、S^2と等しいということを意味します。
また、S^2 = 23 mod 75は、23=S^2 mod 75と変形することができます。この時は、S^2を75で割った時のあまりが23ということを意味します。)

この等式が成り立つようなSの値を、1~75の範囲で探し、
当てはまるすべてのSを見つけ、等式が成り立つSをすべてみつけ出すようなプログラムを書きたいのですが、
どのように書いたらいいのでしょうか。

どなたかわかる方よろしくお願いします。

A 回答 (4件)

>S^2 = 23 mod 75は、23を75で割ったあまりの数が、S^2と等しいということを意味します。



これは嘘です。

したがって

>s*s == 23%77

という式も間違いです。でも後一歩ですね。もう一度、教科書かノートを
よく読んで考え直せば、正解にたどり着けるでしょう。
    • good
    • 0

>どこが間違っているのでしょうか?



23 を 77 で割ればあまりは 23 です。
    • good
    • 0

>int x;


>for(x = 0; x < 75; x++) {
>ここに書く文がわかりません;
>}

x を二乗して 75 で割った余りが 23 かどうかをチェックするだけです。

>基礎もわかってなくて恥ずかしいのですが、よろしくおねがいします。
じゃあ基礎から勉強して下さい。

この回答への補足

for(s=1; s<= 77; s++){
if(s*s == 23%77){
System.out.println("Sは"+s);
  }else{
System.out.println("S"+s);
}
}

と、プログラムを書いてみたのですが、
この条件に合うSがないと判定されるのか「S77」と表示されます。
どこが間違っているのでしょうか?

補足日時:2008/01/17 03:21
    • good
    • 0

単純に for ループをまわすプログラムが書けないということでしょうか?


それとももっと「うまい方法」を探しているということでしょうか?補足に書いて下さい。

この回答への補足

for文でかけるのでしょうか??
以下のようにかけるのなら

int x;
for(x = 0; x < 75; x++) {
ここに書く文がわかりません;
}

基礎もわかってなくて恥ずかしいのですが、よろしくおねがいします。

補足日時:2008/01/17 02:05
    • good
    • 0

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