Skip to main content
LeetCode 526, Medium. Topics: Array, Dynamic Programming, Backtracking, Bit Manipulation, Bitmask. View on LeetCode. Generate this problem as a practice environment: tested reference solution, 15 parametrized pytest cases, and a playground notebook:

Problem

Suppose you have n integers labeled 1 through n. A permutation of those n integers perm (1-indexed) is considered a beautiful arrangement if for every i (1 <= i <= n), either of the following is true:
  • perm[i] is divisible by i.
  • i is divisible by perm[i].
Given an integer n, return the number of the beautiful arrangements that you can construct.

Examples

Constraints

  • 1 <= n <= 15

Solution

Reference implementation from solution.py on GitHub, full suite in test_solution.py:

Complexity

Tags

Last modified on September 7, 2026