Hari ini dirilis bahasa pemrograman Go oleh google
http://golang.org
Dan ku coba bikin program pertama untuk hitung banyak prima pake siv.
Iseng.
Menarik juga. Ku hampir ga tulis tipe apapun selain int di beberapa tempat. <- ini sugoi, jadi
kaya dynamic, padahal ngga.
package main
import "fmt"
type Siv struct {
n int;
}
func (this *Siv) Mulai() int {
bukan := make([]bool, this.n);
nprima := 0;
cobaSampe := this.n / 2;
for i := 2; i <= cobaSampe; i++ {
c := i + i;
for {
if c >= this.n {
break;
}
bukan[c] = true;
c += i;
}
}
for i := 2; i < this.n; i++ {
if !bukan[i] {
nprima++;
}
}
return nprima;
}
func (this *Siv) SetN(n int) {
this.n = n;
}
func main() {
n := 1000;
siv := new(Siv);
siv.SetN(n);
nprima := siv.Mulai();
fmt.Printf("Ada %d prima dari 2 sampe %d\n", nprima, n);
}