← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
)

func gcd(a, b int) int {
	for b != 0 {
		a, b = b, a%b
	}
	return a
}

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)

	if !scanner.Scan() {
		return
	}
	n, _ := strconv.Atoi(scanner.Text())

	x := make([]int, n)
	for i := 0; i < n; i++ {
		scanner.Scan()
		x[i], _ = strconv.Atoi(scanner.Text())
	}

	sort.Ints(x)

	g := x[1] - x[0]
	for i := 2; i < n; i++ {
		g = gcd(g, x[i]-x[i-1])
	}

	if g == 0 {
		fmt.Println(0)
	} else {
		fmt.Println((x[n-1]-x[0])/g - n + 1)
	}
}
```