js求两个数的最大公约数和最小公倍数 提供十种方案
时间: 2023-08-06 08:03:46 浏览: 89
以下是十种不同的 JavaScript 方案,用于求两个数的最大公约数和最小公倍数:
1. 使用 while 循环和取模运算符(最大公约数):
```js
function gcd(a, b) {
while (b !== 0) {
let t = b;
b = a % b;
a = t;
}
return a;
}
```
2. 使用递归和取模运算符(最大公约数):
```js
function gcd(a, b) {
return b === 0 ? a : gcd(b, a % b);
}
```
3. 使用 for 循环和取模运算符(最大公约数):
```js
function gcd(a, b) {
for (let i = Math.min(a, b); i >= 1; i--) {
if (a % i === 0 && b % i === 0) {
return i;
}
}
}
```
4. 使用 while 循环和乘法运算符(最小公倍数):
```js
function lcm(a, b) {
let i = 1;
while (true) {
const m = a * i;
if (m % b === 0) {
return m;
}
i++;
}
}
```
5. 使用 for 循环和乘法运算符(最小公倍数):
```js
function lcm(a, b) {
for (let i = Math.max(a, b); i <= a * b; i++) {
if (i % a === 0 && i % b === 0) {
return i;
}
}
}
```
6. 使用 while 循环、取模和除法运算符(最大公约数):
```js
function gcd(a, b) {
let r = a % b;
while (r !== 0) {
a = b;
b = r;
r = a % b;
}
return b;
}
```
7. 使用递归、取模和除法运算符(最大公约数):
```js
function gcd(a, b) {
return b === 0 ? a : gcd(b, a / b | 0);
}
```
8. 使用 while 循环、乘法和除法运算符(最小公倍数):
```js
function lcm(a, b) {
let m = Math.max(a, b);
while (m % a !== 0 || m % b !== 0) {
m++;
}
return m;
}
```
9. 使用 for 循环、乘法和除法运算符(最小公倍数):
```js
function lcm(a, b) {
for (let i = Math.max(a, b); i <= a * b; i++) {
if (i % a === 0 && i % b === 0) {
return i;
}
}
}
```
10. 使用 ES6 的箭头函数和逗号运算符(最大公约数和最小公倍数):
```js
const gcd = (a, b) => b === 0 ? a : gcd(b, a % b);
const lcm = (a, b) => a * b / gcd(a, b);
```
阅读全文