最速の素因数分解アルゴリズムを作りたい
■ このスレッドは過去ログ倉庫に格納されています
例えば2021の素因数分解をすると
40×40=1600 50×50=2500の間にあるから40~50の間の素数が使われると仮定
その間の素数は41.43.47の3つ
下一桁が1なので41は除外で43×47=2021
この方法が巨大数に応用できればログが少なくて実用的になると良いなぁ… >>6
よくわからん
77で試すと
8^2<77<9^2だけど8と9の間に77の素因数はないが
うまく行く場合といけない場合があるんか アルゴリズムを考える時に一番重要なのは現在のコンピュータの演算速度
例えば足し算引き算掛け算は1サイクルで済むけど
割り算や余りは数十サイクルもかかってしまう >>6
フェルマーのやり方と似てる
平方根をとって総当たりでやる >>8
あるある
あとはその素数の差が極端に離れてるとか
3つの素数の場合は1つだけこれで特定できたり出来なかったり その数を平方で取って区間を素数から素数で取れば良いのかな?
77は√77=8.77...だから7と11になるみたいな?
2021は√2021=44.95...だから43と47
どちらにせよ区間に幅持たせないと飛んでたら意味無いし3つ使ってたら使えるかわからんが… >>14
どういう事?
2.3.5.7.11.13...で
8.77は↑ここの位置だから素数区間は7と11でしょ?
区間を広げたとしても1桁が7だから
該当は
7と11、11と17、3と19が該当で
7と11と見つけられると考えられるが、
反例の14はどこから?
2と7は下一桁が7にはならないが。 >>14
ごめんなさい
今やっとわかった
このやり方で14は3.74だから出来ないね 平方根からずらしていってデータを集める系は複数多項式2次ふるい法っていうんじゃね? >>19
https://i.imgur.com/AmCfa9S.jpg
図形で捉える的な?
それをアルゴリズムに落とせるか否かだけど…
最低限の篩は必要だと思うよ >>23
それってどうやるんだ?
試しに2501でやってみてもらいたい 俺も図形形式でやってみる
2501はだいたい2500なので√2500=50が一旦の上限
50×40=2000
2501-2000=501ではまだ残りが見えてこなさそうなので下1桁に1が出るようにすると
41×51=2091
2501-2091=410でビンゴ
41×10で
51+10=61←素数なので
2501=41×61 すまん誤投
てかぶっちゃけ素数を絞るのって匂いというか勘に左右されていかない?
小さいのとの剥離が大きければ大きいほど探しにくくなるわけだし
誰か逆に何桁でも良いから問題出してほしい楽しくなってきた 正の整数Pが素数であるとは、1ではない正の整数N1とN2をつかって
P=N1*N2と表せないようなもののことである。
それでは
正の整数Qが1ではない正の整数N1、N2、N3を使って
Q=N1*N2*N3とは表せないものであるとするとき、
Qを要素とする集合はどのようなものになるか。 tiktok liteでPayPayやAmazon券などに交換可能な4000円分のポイントをプレゼント中!
※既存tiktokユーザーの方はtiktokからログアウトしてアンインストールすれば可能性あり
1.SIMの入ったスマホかタブレットを準備。
2.以下のtiktok liteのサイトからアプリをダウンロード(ダウンロードだけでまだ起動しない)
https://lite.tiktok.com/t/ZSNfGY43n/
3.ダウンロード完了後、もう一度上記アドレスのリンクからアプリへ
4.アプリ内でtiktokで使用してない電話番号かメールアドレスから登録
5.10日間連続のチェックイン(←重要!)で合計で4000円分のポイントゲット
ポイントはPayPayやAmazon券に交換できます!
家族・友人に紹介したり、通常タスクをこなせば更にポイントを追加でゲットできます ■ このスレッドは過去ログ倉庫に格納されています