以下方法均来源于网络:
判断回文数方法:
1、将数字倒转,进行比较。
static int reversal(int num) { //反转原数
int result = 0;
while(num != 0){
int lastDigit = num % 10;
result = result * 10+ lastDigit;
num = num / 10;
}
return result;
}
static boolean isPalindrome(int num) { //判断是否为回文数
return num == reversal(num);
}
2、首先判断位数,依次取各位,逐位判断是否相同
int i1=i/10000;
int i2=i/1000%10;
int i3=i/100%10; //这里注意仔细计算怎么计算每个位数java里的除法是直接舍弃
int i4=i%100/10;
int i5=i%10;
if(i1+i2+i3+i4+i5==a&&i1==i5&&i2==i4) {
System.out.println(i);
}
判断素数方法汇总
1、暴力求解
bool isprime1(int n) {
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
2、开方求解
原理:若不是素数,则其中一个因子一定为根号下n。
bool isprime2(int n) {
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
3、利用规律有效判断
规律:大于等于5的质数一定和6的倍数相邻,例如5和7,11和13,17和19等等,不在6的倍数两侧,一定不是素数,再除去6x本身,显然,素数要出现只可能出现在6x的相邻两侧。
/**
* 判断是否为素数/质数的最有效方法
* 1.小于5的2和3
* 2.大于等于5的素数一定和6的倍数相邻,例如5和7,11和13,17和19等等。
* @param num
* @return
*/
public static boolean isPrime(int num) {
//两个较小数另外处理
if(num==2 || num==3) {
return true;
}
//不在6的倍数两侧的一定不是素数
if(num%6!=1 && num%6!=5) {
return false;
}
int tmp = (int) Math.sqrt(num);//获取平方根
//在6的倍数两侧的也可能不是素数
for(int i=5; i<=tmp; i+=6) {
if(num%i==0 || num%(i+2)==0) {
return false;
}
}
return true;
}