- 締切済み
等式を満たす数を求める
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をすべてみつけ出すようなプログラムを書きたいのですが、 どのように書いたらいいのでしょうか。 どなたかわかる方よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ansariga10
- ベストアンサー率47% (10/21)
>S^2 = 23 mod 75は、23を75で割ったあまりの数が、S^2と等しいということを意味します。 これは嘘です。 したがって >s*s == 23%77 という式も間違いです。でも後一歩ですね。もう一度、教科書かノートを よく読んで考え直せば、正解にたどり着けるでしょう。
- koko_u_
- ベストアンサー率18% (459/2509)
>どこが間違っているのでしょうか? 23 を 77 で割ればあまりは 23 です。
- koko_u_
- ベストアンサー率18% (459/2509)
>int x; >for(x = 0; x < 75; x++) { >ここに書く文がわかりません; >} x を二乗して 75 で割った余りが 23 かどうかをチェックするだけです。 >基礎もわかってなくて恥ずかしいのですが、よろしくおねがいします。 じゃあ基礎から勉強して下さい。
- koko_u_
- ベストアンサー率18% (459/2509)
単純に for ループをまわすプログラムが書けないということでしょうか? それとももっと「うまい方法」を探しているということでしょうか?補足に書いて下さい。
補足
for文でかけるのでしょうか?? 以下のようにかけるのなら int x; for(x = 0; x < 75; x++) { ここに書く文がわかりません; } 基礎もわかってなくて恥ずかしいのですが、よろしくおねがいします。
補足
for(s=1; s<= 77; s++){ if(s*s == 23%77){ System.out.println("Sは"+s); }else{ System.out.println("S"+s); } } と、プログラムを書いてみたのですが、 この条件に合うSがないと判定されるのか「S77」と表示されます。 どこが間違っているのでしょうか?