C/C++の宿題片付けます 127代目
■ このスレッドは過去ログ倉庫に格納されています
0172むむナナ
2009/06/10(水) 20:02:40[2] 問題文(含コード&リンク):
オイラーの定理は、「n と a を互いに素な任意の正整数とするとき、
a^φ(n) - 1 (a の φ(n) 乗から1を引いた値) は必ず n で割り切れる。」
というものです。1以上 50未満の n と、1以上n未満で n と互いに素な
a のすべての組み合わせに対して、オイラーの定理が成り立っていること
を確認するプログラムを書いてください。
a の φ(n) 乗を実際に計算してしまうと int型で扱える範囲をすぐに
超えてしまいます。a の i 乗を順次求めていくかわりに、
a の i 乗を n で割った余りを順次求めていくようにすることで、
この問題を避けることができます。出力の形式は、
検査した n と a の対ごとに、もし定理が成り立っていれば、
n = %1, a = %2: verified 成り立っていなければ
■ このスレッドは過去ログ倉庫に格納されています