From a3817ba908b3705f96e572c48d5a9d96aae40118 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 26 Aug 2016 09:59:34 +0200 Subject: Solve grains --- go/grains/grains.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 go/grains/grains.go (limited to 'go/grains/grains.go') diff --git a/go/grains/grains.go b/go/grains/grains.go new file mode 100644 index 0000000..22bbdda --- /dev/null +++ b/go/grains/grains.go @@ -0,0 +1,19 @@ +package grains + +import "errors" + +func Square(n int) (uint64, error) { + if n < 1 || n > 64 { + return 0, errors.New("out of range") + } + return 1 << uint(n-1), nil +} + +func Total() uint64 { + var n uint64 + for i := 0; i < 64; i++ { + s, _ := Square(i + 1) + n += s + } + return n +} -- cgit v1.2.3