最大公约数与最小公倍数
问题分析:
a. 最小公倍数可以由两个数的乘积除以两个数的最大公约数得到。
b. 最大公约数利用p和q之间求余,将q赋给p,再将余数 r 赋给q,并判断q是否为0的思想返回p。做如下图所示
image.png
// 改进版【辗转相除】 计算两个非负整数 p 和 q 的最大公约数
public static int gcd3(int p, int q){
while(q != 0){
int r = p % q;
p = q;
q = r;
}
return p;
}
// 计算两个非负整数 p 和 q 的最小公倍数
public static int lcm(int p, int q){
int p1 = p;
int q1 = q;
while(q != 0){
int r = p % q;
p = q;
q = r;
}
return (p1*q1)/p;
}
素数
- 定义:质数又称为素数,一个大于1的自然数,除了1和它自身之外,不能被其他任何自然数整除的数叫质数。
public class Demo {
public static void main(String[] args) {
for (int i = 2; i < 100; i++) {
boolean flag=true;
for (int j = 2; j < i; j++) {
if(i%j==0){
flag=false;
break;
}
}
if(flag){
System.out.print(i+"\t");
}
}
}
}
回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。如121
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)){
return false;
}
String str = String.valueOf(x);
int L = str.length() - 1;
int R = 0;
while (L > R) {
if (str.charAt(L) != str.charAt(R))
return false;
L--;
R++;
}
return true;
}
网友评论