| > それに対して、ある数nの素因数を求めるアルゴリズムでは、√n以下の数字で順に割っていけば解が出ます。ソートの時と同じように考えると、自分の(間違った)感覚では計算量がO(√n)に感じます。
そのとおり、O(√n)だと思います。
計算量が多項式時間かどうかどうかというのは、入力データのサイズがmの場合にmの多項式になるかどうかということなので、数nをデータで表したときにどのくらいのサイズなのかを考える必要があります。2進数で表すこと考えると(別に10進数でも構いません)、 2進数m桁の数nを素因数分解するとき、nは大体2^mなので、√nは2^(m/2)くらいであり、計算量はO(√n)=O(2^(m/2))となって、これは指数時間となりますね。
|