ここは、
for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if int64(i) % j == 0 { flg = false }
}
if flg == true { primes = append(primes, int64(i)) }
}
こうすべきなんじゃ?
for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if n%j == 0 { return false } // 追加
if int64(i)%j == 0 { flg = false }
:
そりゃ n までの素数を全部計算してからチェックしたら遅いわな
Go language part 1
■ このスレッドは過去ログ倉庫に格納されています
492デフォルトの名無しさん
2016/01/25(月) 09:30:52.61ID:11Jcfjfr■ このスレッドは過去ログ倉庫に格納されています
