• 締切済み

等式を満たす数を求める

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をすべてみつけ出すようなプログラムを書きたいのですが、 どのように書いたらいいのでしょうか。 どなたかわかる方よろしくお願いします。

みんなの回答

回答No.4

>S^2 = 23 mod 75は、23を75で割ったあまりの数が、S^2と等しいということを意味します。 これは嘘です。 したがって >s*s == 23%77 という式も間違いです。でも後一歩ですね。もう一度、教科書かノートを よく読んで考え直せば、正解にたどり着けるでしょう。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>どこが間違っているのでしょうか? 23 を 77 で割ればあまりは 23 です。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>int x; >for(x = 0; x < 75; x++) { >ここに書く文がわかりません; >} x を二乗して 75 で割った余りが 23 かどうかをチェックするだけです。 >基礎もわかってなくて恥ずかしいのですが、よろしくおねがいします。 じゃあ基礎から勉強して下さい。

ninikuta
質問者

補足

for(s=1; s<= 77; s++){ if(s*s == 23%77){ System.out.println("Sは"+s);   }else{ System.out.println("S"+s); } } と、プログラムを書いてみたのですが、 この条件に合うSがないと判定されるのか「S77」と表示されます。 どこが間違っているのでしょうか?

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

単純に for ループをまわすプログラムが書けないということでしょうか? それとももっと「うまい方法」を探しているということでしょうか?補足に書いて下さい。

ninikuta
質問者

補足

for文でかけるのでしょうか?? 以下のようにかけるのなら int x; for(x = 0; x < 75; x++) { ここに書く文がわかりません; } 基礎もわかってなくて恥ずかしいのですが、よろしくおねがいします。

関連するQ&A