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;
};