package main
import (
"fmt"
)
func main() {
var total int = 0
for n := 2; n <= 100; n++ {
if isPrime(n) {
total += n
}
}
fmt.Println(total)
}
func isPrime(n int) bool {
for v := 2; v * v <= n; v++ {
if n % v == 0 {
return false
}
}
return true
}
package main
import (
"fmt"
)
func main() {
fmt.Print("Hello, ")
fmt.Println("world.")
fmt.Println(1 + 2*3)
fmt.Println(1, 10, 3.141592) // Spaces are always added between operands
}
package main
import (
"fmt"
)
func main() {
// see: http://golang.org/pkg/fmt/#pkg-overview
fmt.Printf("%d %x %b %.2f\n", 17, 17, 17, 3.141592) // fmt.Printflnは無い
}
package main
import (
"fmt"
"os"
)
func main() {
fmt.Fprint(os.Stderr, "Hello, ")
fmt.Fprintln(os.Stderr, 1+2*3)
fmt.Fprintf(os.Stderr, "%d %x %b", 17, 17, 17)
fmt.Fprintf(os.Stderr, "%.2f\n", 3.141592)
}
package main
import (
"fmt"
"bufio"
"os"
)
func main() {
sc := bufio.NewScanner(os.Stdin)
for i := 0; i < 100; i++ {
if sc.Scan() == false {
// EOFの場合はErr()==nilであり, この処理は適切ではないかもしれない
panic(sc.Err())
}
line := sc.Text()
fmt.Println(line)
}
}
package main
import (
"fmt"
"bufio"
"os"
)
func main() {
sc := bufio.NewScanner(os.Stdin)
for sc.Scan() {
fmt.Printf("<%v>\n", sc.Text())
}
}
package main
import (
"fmt"
)
func main() {
for i:= 0; i < 5; i++ {
var a, b int
_, err := fmt.Scan(&a, &b)
if err != nil {
panic(err)
}
fmt.Printf("a = %v, b = %v\n", a, b)
}
}
package main
import (
"fmt"
)
func main() {
const N = 1000
var is_prime [N]bool
for i := range is_prime {
is_prime[i] = true
}
primes := make([]int, 0)
for p := 2; p < N; p++ {
if is_prime[p] {
primes = append(primes, p)
for q := p*p; q < N; q += p {
is_prime[q] = false
}
}
}
fmt.Println(len(primes))
}
package main
import (
"fmt"
)
func main() {
// Sliceのappendはヤバいパターンがあるので注意
// 解決策1. ポインタで持つ (http://qiita.com/koher/items/3c570dfdd3ee25cd8017)
// 解決策2. capを書き換える (http://jxck.hatenablog.com/entry/golang-slice-internals2)
fractal := []int{0}
for i := 1; i < 10; i++ {
fractal = append(append(fractal, i), fractal...)
}
fractal = (fractal)[:30]
fmt.Println(fractal)
}