質問: プログラミングに関してなのですが、、、 nx*xとして、このnを平方根を使わずに2乗だとチェックできる方法ってありませんか?
回答: 整数の2乗数判定ですか? 平方根は多分CPU が計算してるのでそれより早いロジックは無理です。 多桁計算だとライブラリーを使うことになりますが、 チューニングはしているはずでムダな計算なんてしているはずがないので 簡単にそれより良いものは作れません。 CPU の計算よりも早く判定できる可能性としては、以下。 完全な判定にはならないけど 平方根計算しなくても判定できるパターンはあるので それにより大量計算であれば時間短縮になる可能性はあるでしょう。 末尾1桁が、0,1,4,5,6,9以外は✖ という簡単な判定ができます。 整数全体の4/10を✖判定できます。 で、これを末尾n桁と拡張することも出来ます。 2桁なら、00,01,04,05,06,09に加えて 16,21,24,25,29,36,41,44,49,56,61,64 ,69,76,81,84,89 ,96 かどうかで判定できます。 23/100 を✖判定できます。 この判定を、CPUの平方根計算関数よりも高速に書ければ 改善できる可能性はあります。