プログラミングのお題スレ Part22 (876レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
867: デフォルトの名無しさん [] 2025/10/26(日) 09:31:44.23 ID:Y3+SSpql お題というか、協力してほしい感じなんですが、素因数分解関数をHaskellで書いて色んな数を素因数分解して遊んでいたら確認したい事実に出くわしたので。 31 <- 素数 331 <- 素数 3331 <- 素数 33331 <- 素数 333331 <- 素数 と、3が5個並んで末尾が1の数字までは素数という事が分かりましたが、いかんせん、ノートだと力不足。 それにCとかで書き直したらもっと先まで行けるかも?という事で、この先、どこまで33...31が素数なのかを調べて欲しいのです。 協力お願いします<(_ _)> 一応、Haskellではこんなコードです。 factorization n = f primes n where primes = 2:(sieve [3,5..]) where sieve (p:xs) = p:(sieve [x | x <- xs, x `mod` p /= 0]) f (p:ps) n | n <= p = [n] f (p:ps) n | n `mod` p == 0 = p:f (p:ps) (n `div` p) f (p:ps) n = f ps n http://mevius.5ch.net/test/read.cgi/tech/1691038333/867
868: デフォルトの名無しさん [] 2025/10/26(日) 09:50:23.90 ID:Y3+SSpql あ、ただの素数判定でも良いです。 ちなみに、66..61の場合は6661までは素数ですが66661は素数じゃなくなりました。 なので、33..31もどこかで素数じゃなくなるのか?それともずっと素数になりそうなのか?って疑問が持ち上がりました。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/868
872: デフォルトの名無しさん [] 2025/10/26(日) 17:08:32.87 ID:Y3+SSpql >>869-871 いえいえ、ああ、やっぱりずっと素数という訳にはいかないんですね…。 何か素数の秘密に触れるヒントか?と心躍ったけど、そんな訳なかったですね(´・ω・`) あやうく数学スレで鼻息荒く書き込むところでした。 ありがとうございました<(_ _)> http://mevius.5ch.net/test/read.cgi/tech/1691038333/872
874: デフォルトの名無しさん [] 2025/10/26(日) 23:06:07.50 ID:Y3+SSpql >>873 速いアルゴリズムに変えたら何とか1分ほどでその数字まで届きました。 (そもそも、>867 のは美しいとか短いとかの枕詞が付くコードですし。33...31に気付かなかったら4桁ぐらいが実用的ならおkだったので) 改良版Haskell pfactorization = f primes where primes =2:3:5#primes where n#x@(m:q:y)=[n|gcd m n<2]++(n+2)#last(x:[m*q:y|q^2-3<n]) というか、それより1桁少ない方が少し時間かかりますね。 19607843 < 33333331 なので、素数比較回数が多いのかと。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/874
875: デフォルトの名無しさん [] 2025/10/26(日) 23:07:37.04 ID:Y3+SSpql あ、f の方を忘れた。 f のコードは変更なしです。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/875
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.036s