> For the complete documentation index, see [llms.txt](https://mayanktyagi3111.gitbook.io/interview-prep/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mayanktyagi3111.gitbook.io/interview-prep/maths/simplified-fractions.md).

# Simplified Fractions

Given an integer `n`, return a list of all **simplified** fractions between 0 and 1 (exclusive) such that the denominator is less-than-or-equal-to `n`. The fractions can be in **any** order.

**Example 1:**

```
Input: n = 2
Output: ["1/2"]
Explanation: "1/2" is the only unique fraction with a denominator less-than-or-equal-to 2.
```

**Example 2:**

```
Input: n = 3
Output: ["1/2","1/3","2/3"]
```

**Example 3:**

```
Input: n = 4
Output: ["1/2","1/3","1/4","2/3","3/4"]
Explanation: "2/4" is not a simplified fraction because it can be simplified to "1/2".
```

**Example 4:**

```
Input: n = 1
Output: []
```

**Constraints:**

* `1 <= n <= 100`

```java
class Solution {
    private int gcd(int x, int y) {
        if (y == 0)
            return x;
        return gcd(y, x % y);
    }

    public List<String> simplifiedFractions(int n) {
        List<String> ans = new ArrayList<>();
        Set<String> set = new HashSet<>();
        for (int i = 2; i <= n; i++) {
            for (int j = 1; j < i; j++) {
                int gcd = gcd(i, j);
                int num = j / gcd, deno = i / gcd;
                StringBuilder str = new StringBuilder();
                str.append(Integer.toString(num) + "/" + Integer.toString(deno));
                if (!set.contains(str.toString())) {
                    set.add(str.toString());
                    ans.add(str.toString());
                }
            }
        }
        return ans;
    }
}
```
