java求指定范围内的最大公约数和最小公倍数
时间: 2023-11-17 09:25:13 浏览: 31
可以使用辗转相除法来求解指定范围内的最大公约数和最小公倍数。以下是 Java 代码示例:
```java
public class GCDAndLCM {
// 求最大公约数
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求最小公倍数
public static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
// 求指定范围内的最大公约数和最小公倍数
public static void gcdAndLcmInRange(int start, int end) {
int gcdRes = start;
int lcmRes = start;
for (int i = start + 1; i <= end; i++) {
gcdRes = gcd(gcdRes, i);
lcmRes = lcm(lcmRes, i);
}
System.out.println("在范围[" + start + ", " + end + "]内的最大公约数为:" + gcdRes);
System.out.println("在范围[" + start + ", " + end + "]内的最小公倍数为:" + lcmRes);
}
public static void main(String[] args) {
int start = 1;
int end = 10;
gcdAndLcmInRange(start, end);
}
}
```
在上述代码中,`gcd()` 方法用于求最大公约数,`lcm()` 方法用于求最小公倍数,`gcdAndLcmInRange()` 方法用于求指定范围内的最大公约数和最小公倍数。在 `main()` 方法中,我们可以设置 `start` 和 `end` 的值来指定范围。