题目描述
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
示例1
输入
5
7
输出
35
public int lcm(int x, int y) {
for (int i = 1; i < x * y; i++) {
if (i % x == 0 && i % y == 0)
return i;
}
return x * y;
}
static int gcd(int a,int b){
return b == 0 ? a : gcd(b,a%b);
}
//求ab之间的最小公倍数
static int lcm(int a,int b){
return a * b / gcd(a,b);
}
求最大公约数:
1,欧几里得算法求最大公约数
public static int gcd1(int num1, int num2) {
int temp = num1 % num2;
while (temp != 0) {
num1 = num2;
num2 = temp;
temp = num1 % num2;
}
return num2;
}
2,还可以从num1和num2的最小值找起,一直往下减,直到找到为止
public static int gcd2(int num1, int num2) {
int temp = Math.min(num1, num2);
while (true) {
if (num1 % temp == 0 && num2 % temp == 0)
break;
else
temp--;
}
return temp;
}
public static int gcd2_1(int num1, int num2) {
int temp = Math.min(num1, num2);
while (num1 % temp != 0 || num2 % temp != 0) {
temp--;
}
return temp;
}
3,还可以辗转相减求得
public static int gcd3(int num1, int num2) {
while (true) {
if (num1 > num2)
num1 -= num2;
else if (num1 < num2)
num2 -= num1;
else
return num1;
}
}
4,还可以使用递归的方式
public static int gcd4(int a, int b) {
if (a % b == 0)
return b;
return gcd4(b, a % b);
}
把int转化为String,以下三种方式把整形地i转化为字符串s,当然把Double、Float、Long转化为字符串操作一样。
1.String s=""+i;
2.String s=Integer.toString(i);
3.String s=String.valueOf(i);
字符转字符串使用String.valueOf()
char ch = 'U';
String valueOfchar = String.valueOf(ch);
把String转化为int型。
1.int i=Integer.parsenInt(s);
2.int i=Integer.valueOf(s).intValue();
把Integer转化为String
Integer integer=String()
把String转化为Integer
Integer integer=Integer.valueOf(i)
把int转化为Integer
Integer integer=new Integer()
把Integer转化为int
int num=Integer.intValue()
把String转化为BigDecimal
BigDecimal bd=new BigDecimal(str)