JavaScript输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2023-11-03 14:24:48 浏览: 40
可以使用JavaScript实现欧几里得算法来求最大公约数,最小公倍数则可以通过最大公约数求得。
代码如下:
```javascript
// 输入两个正整数m和n
let m = 12;
let n = 18;
// 定义函数求最大公约数
function gcd(a, b) {
if (b === 0) {
return a;
} else {
return gcd(b, a % b);
}
}
// 求最大公约数
let maxCommonDivisor = gcd(m, n);
// 求最小公倍数
let minCommonMultiple = (m * n) / maxCommonDivisor;
// 输出结果
console.log(`最大公约数为:${maxCommonDivisor}`);
console.log(`最小公倍数为:${minCommonMultiple}`);
```
上述代码中,我们先定义了一个求最大公约数的函数gcd,使用了欧几里得算法来实现。然后使用这个函数来求得m和n的最大公约数,再通过公式`(m * n) / 最大公约数`来求得最小公倍数。最后输出结果即可。
相关问题
js求两个数的最大公约数和最小公倍数 提供十种方案
以下是十种不同的 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);
```
js利用递归求最大公约数 和最小公倍数
求最大公约数:
```javascript
function gcd(a, b) {
if (b === 0) {
return a;
} else {
return gcd(b, a % b);
}
}
```
求最小公倍数:
```javascript
function lcm(a, b) {
return (a * b) / gcd(a, b);
}
```