solarized-light

package main

import "fmt"

func calculateSquares(number int, squareop chan int) {
	sum := 0
	for number != 0 {
		digit := number % 10
		sum += digit * digit
		number /= 10
	}
	squareop <- sum
}

func calculateCubes(number int, cubeop chan int) {
	sum := 0
	for number != 0 {
		digit := number % 10
		sum += digit * digit * digit
		number /= 10
	}
	cubeop <- sum
}

func main() {
	number := 589
	sqrch := make(chan int)
	cubech := make(chan int)
	go calculateSquares(number, sqrch)
	go calculateCubes(number, cubech)
	squares, cubes := <-sqrch, <-cubech
	fmt.Println("Final result", squares+cubes)
}