```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)
}
}
```