Skip to content

1447. Simplified Fractions

Description

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. You can return the answer 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".

 

Constraints:

  • 1 <= n <= 100

 

Solutions

Solution: Math

  • Time complexity: O(n^2*logn)
  • Space complexity: O(n^2)

 

JavaScript

js
/**
 * @param {number} n
 * @return {string[]}
 */
const simplifiedFractions = function (n) {
  const result = [];
  const gcd = (a, b) => (b ? gcd(b, a % b) : a);

  for (let denominator = 2; denominator <= n; denominator++) {
    for (let molecular = 1; molecular < denominator; molecular++) {
      if (gcd(denominator, molecular) > 1) continue;
      result.push(`${molecular}/${denominator}`);
    }
  }
  return result;
};

Released under the MIT license