Go Language Tutorial

# Go Program to Compute Sum of Digits and Product of Digits

## Go Programming Example to Calculate Sum of digits using for loop

This go program is used to find the sum of digits for a number which is provided as user input using for loop.

```package main

import "fmt"

func sumOfDigits(num int) int {
var sum int = 0
for temp:=num; temp!=0; temp=temp/10 {
remainder := temp % 10
sum = sum + remainder
}
return sum
}

func main() {
var num, digits_sum  int
digits_sum = 0
fmt.Print("Enter number: ")
fmt.Scanf("%d", &num)

digits_sum = sumOfDigits(num)
fmt.Printf("Sum of digits %d: %d\n", num, digits_sum)
}
```
Output:
```\$ go build digits-sum.go
\$ ./digits-sum
Enter number: 345
Sum of digits 345: 12

\$ ./digits-sum
Enter number: 3456
Sum of digits 3456: 18
```

Note: when providing the negative number to find the sum of digits to this go program and negative sign is added with the sum of digits.

```\$ ./digits-sum
Enter number: -76
Sum of digits -76: -13
```

## Go Programming Example to Calculate Product of digits using for loop

This go program is used to find the product of digits for a number which is provided as user input using for loop.

```package main

import "fmt"

func productOfDigits(num int) int {
var product int = 1
for temp:=num; temp!=0; temp=temp/10 {
remainder := temp % 10
product = product * remainder
}
return product
}

func main() {
var num, digits_product  int
digits_product = 0
fmt.Print("Enter number: ")
fmt.Scanf("%d", &num)

digits_product = productOfDigits(num)
fmt.Printf("Product of digits %d: %d\n", num, digits_product)
}
```
Output:
```\$ go build digits-product.go
\$ ./digits-product
Enter number: 345
Product of digits 345: 60

\$ ./digits-product
Enter number: 4353
Product of digits 4353: 180

```

Note: when providing the negative number to find the product of digits to this go program and negative sign is added with the product of digits.

```\$ ./digits-product
Enter number: -345
Product of digits -345: -60

\$ ./digits-product
Enter number: -908
Product of digits -908: 0

```