Her zaman iş için kod yazmak insanı daraltır. Bazen sınırlarınız zorlayıp keyifli keyifli düşünmek istersiniz. İşte öyle anlarımdan birinde golang ile asal sayı bulma algoritmaları neler olabilir diye düşünürken…
Asal sayı çözümlemeleri ve çalışma süreleri:
yontem 1 = 1m38.56121s
for a := 3; a <100000 ;a++ { asal := false for i := 2 ; i <a ; i++{ //fmt.Println(a , i) if a%i == 0{ asal = true } } if !asal { fmt.Println(a) } }
yöntem 2 = 948.768ms
asallar := []int{} asallar = append(asallar, 2) asalMi := true for a := 2; a < 100000; a++ { if !asalMi { fmt.Println(a-1) asallar = append(asallar, a-1) } asalMi = false for _, c := range asallar { if a % c == 0 { asalMi = true break } } }
yöntem 3 = 8.820473s
i:= 2 for a := 3; a <100000 ;a++ { if i == a - 1 { fmt.Println(a-1) } for i = 2 ; i <a ; i++{ //fmt.Println(a , i) if a%i == 0{ break } } }