- ベストアンサー
素因数分解!?
xは自然数でx^2=736164のときxを求めよ。という問題なのですが、素因数分解してくと2、2、3、3の順で分解できるのはすぐ気づきます。しかし20449でとまってしまいます・・。なんとか143で分解できると気づいてx=858と答え出せたのですが、もっと上手い解き方ありますか?あるいは、2~3桁の素数の積を一瞬で見分ける方法はありますか?わかる方いましたらお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
基本は元の数の√の値ぐらいまでの素数を順に試していくしかありません。 ただし 2の倍数・・・1の位が偶数 3の倍数・・・すべての桁の数を足すと3の倍数 5の倍数・・・1の位が0か5 は見分けやすいです。 736164の場合 →2×368082 →2×2×184041 →2×2×3×61347(一番小さい素数の2では割れないのでその次に小さい3で割ってみる) →2×2×3×3×20449 ここで20449を小さい素数から順に割ってみると3無理、5無理、7無理、11で割れるので →2×2×3×3×11×1859 →2×2×3×3×11×11×169 169=13×13より →2×2×3×3×11×11×13×13 とにかく2から素数で順に割って割れるかどうか確認してみるのが一番早いです。コンピューターも現在のところこの方法しか無理みたい立ったと思いますので王道ですがこの方法が一番いいです。
その他の回答 (4)
- alphion
- ベストアンサー率19% (27/136)
ルートの計算方法をご存知ですか? 与えられた数字を下の桁から2桁づつ区切る 20449 => 2 04 49 1 1 4 3 +1 ------- -- 2 04 49 24 1 <= 1x1 2に一番近くなるa^2のaは1 + 4 ------- --- 1 04 283 96 <= 24x4 104に一番近くなる((a+a)x10+b)xbは、 3 ------- ((1+1)*10+b)xb で、b=4 8 49 8 49 <= 283x3 849に一番近くなる… =3 ---- 0 この知識を使って、一番左の数が2なので、2以下で最大になるa^2の答えは1だから、一番上位は1 小数が出ないなら、c^2の下1桁の値は与えられた数字の下1桁に一致する から、下1桁が9になるのは、3か7 というように絞れば良いのでは?
お礼
ルート計算法なんて初めて聞きました。これから調べてみます。ありがとうございました。
- ctrlzr
- ベストアンサー率29% (18/62)
logを使用します。 x^2=736164 logx^2 = log736164(底は10) 2logx = 5.866974576 logx = 2.933487288 x=10^2.933487288 = 858
お礼
関数電卓か何か使用可なら対数で考えることもできますよね、ありがとうございました。
普通の試験等で見かけるのはせいぜい19程度までなので、素因数分解をする時はたいてい19までのチェックをしてから、なければ終了ということにしています。 20449というのは、チェックしてみると11で割り切れます。 また、20449÷11=1859となり、この1859も11で割れます。 1859÷11=169となり、169は13の二乗ですね。 以上のように、二桁の大きい数字及び100を越えるような素因数分解で問題がでることはまずありません。 なぜなら、ある程度原理が分かっているなら、そこまで面倒くさいことをして素因数を求めさせる意味が無いからです。 ただ、面倒くさいことをさせる問題は全くない、とは言い切れませんのでご注意を。
お礼
素因数分解で3桁を越えることなんてないですよね、自分は143=11X13てこのとき気づきませんでした・・・。ありがとうございました。
- パんだ パンだ(@Josquin)
- ベストアンサー率30% (771/2492)
一瞬で見分ける方法はありません。数の大きさから範囲を絞り込み、順番にあたっていくしか無いと思います。 桁の大きな素数の場合はコンピュータを使っても何年もかかる可能性があり、暗号に使われるぐらいです。 http://www2.ocn.ne.jp/~mint905/fhpstory/ango.html
お礼
素数が暗号に使われているなんて初めて聞きました。ありがとうございました。
お礼
やっぱり小さい素数から割れるか考えていくしかないということですね!ありがとうございました。