600851475143の素因数を探し出す場合です。
・まずxに600851475143を代入しますね
・iに2を代入します
--------------------xが1以上の場合は繰り返し
・x / iで割り切れる場合はxは600851475143の素因数
--xを出力
--x = x/i
・x/iで割り切れない場合は
-- i = i + 1
----------------------繰り返し
xで出力した値 71, 839, 1471, 6857
全然分かりません
600851475143の素因数は
600851475143の約数であり
且つ、その数値が素数であることが条件のはずです。
どうして上のような公式で解けるのでしょうか?
target = 600851475143
x = target
i = 2
prime_factors = []
while x > 1:
if x % i == 0:
prime_factors.append(i)
x = x / i
else:
i += 1
result = max(prime_factors)
print( result )
print (prime_factors)
No.1ベストアンサー
- 回答日時:
以下、1は約数といわないということにします。
#1 targetの最小の約数を探す
これを素因数とする。
#2 targetを素因数で割った商X1の
最小の1以外の約数を探す
これを素因数とする。
#3 targetを素因数で割った商X2の
最小の約数を探す
これを素因数とする。
以下同様の作業をXnが1になるまで続ける。
このプログラムの妥当性について
#1 最小の約数=最小の素因数
がなりたつので ok
最小の約数は必ず素数です。
最小の約数が6とかいうこと
はありえません。
2とか3もでできてしまうからです。
#2 #1で見つけた素数をp1として、
target=p1*X1 これの素因数は
p1とX1の素因数なので、
X1の素因数を探します。
X1の最小の約数を探していくの
ですが、これはp1以上のものから
探していけばいいでしょう。
なぜならば、p1は最小だからです。
#3 は#2と同様ですね。
割った余りが1の所までいけば、
target=p1*p2*p3*…*pn*1と表せる
ことになり、
素因数はp1からpnでつくされることが
わかります。
すっごいですね。
頭悪いので最初は全然分かりませんでしたが
3時間くらい掛けてやっと飲み込めました
一度理解してしまえばかなりわかり易い説明ですね。
ありがとうございました。
No.2
- 回答日時:
Xを2,3,4,5,6・・・で次々に割ってみて、割りきれた数(i)が素因数。
こういう論法でしょう?
有ってますよ。
割り切れたからXの約数。
それまでの因数(i)で割り切れなかったのだから素数。
例えば71。
71が素数で無かったら、71は71より小さい整数でm×n・・・×kとかに書ける。
だとしたらiが71に到達する前にm,n,・・・,kで割り切れてしまうでしょう?
839だって同じ。
iが839に到達する前に、839の約数で割り切れてしまうでしょう?
2から順にやって割り切れずにiが71まで来てやっと割り切れたんだから、71は素数なんですよ!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
全員と同じグループを経験でき...
-
3次元での点群に対する最小二...
-
1/x+1/y≦1/2 , 2<x,2<yのとき、...
-
おしどり遊び(テイトの飛び石...
-
数学の問題について 数学ですが...
-
以下の問題の解答・解説を教え...
-
数学Aの確率
-
ある数字を割り切れる最小の数...
-
なぜ、y"で上に凸、下に凸がわ...
-
2つの放物線間の最短距離
-
【放物線の問題】
-
Xの二次関数 y=x ²ーmx+m(mは...
-
問題文は解答欄に載せます。 四...
-
解答よろしくお願いします
-
青チャート3・C の行列の所の...
-
積分を利用した面積の最小値
-
2次関数の応用
-
中学受験用の小5算数の問題です
-
間違いの理由を教えてください...
-
フェルマー点について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全員と同じグループを経験でき...
-
至急!!二次関数について aは...
-
2進数のバイアス表現について
-
数学Aの確率
-
【放物線の問題】
-
y=x^xの最小値
-
数学の問題がわからず困ってお...
-
数学2です x>0のとき、x + 16/(...
-
中学受験用の小5算数の問題です
-
3次元での点群に対する最小二...
-
おしどり遊び(テイトの飛び石...
-
次の問題を解いてください。 実...
-
x.>0ときγ(x)が最小値となるxの...
-
高校数学1の問題集に、2次関数...
-
3で割ると2余り、7で割ると4余...
-
Xの二次関数 y=x ²ーmx+m(mは...
-
0は公約数?
-
1/x+1/y≦1/2 , 2<x,2<yのとき、...
-
問題文は解答欄に載せます。 四...
-
最小値が-2でグラフは2点(0、0)...
おすすめ情報