| 123456789101112131415161718 | func countArrangement(N int) (cnt int) {	dfs(N, 1, 0, &cnt)	return cnt}func dfs(N int, i int, used int, cnt *int) {	if N < i {		(*cnt)++		return	}	for a := 1; a <= N; a++ {		if mask := 1 << uint(a); used&mask == 0 && (a%i == 0 || i%a == 0) {			used |= mask			dfs(N, i+1, used, cnt)			used ^= mask // Backtracking		}	}}
 |