1.二进制插入
/**
* 二进制插入
* 按二进制位进行“或”运算。|
* 运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;
*/
public int binInsert(int n, int m, int j, int i){
//1.右移j位 即m自动对应i -j 位置
//2. 再利用|位运算获得最终值(自动比较)
m >>=j;
return m|n;
}
2.查找一个偶数最接近的两个素数
/**
* 查找组成一个偶数最接近的两个素数
* 素数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
* 2 3 5 7 9 11 13 ·17 19 23
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
//1.找到最近的两个素数 从中间开始
//2.判断是否为两者是否为素数 成立 则返回
int half = n / 2;
for (int i = half; i>0; i--) {
if(isPrime(i) && isPrime(n-i)){
System.out.println(i);
System.out.println(n-i);
//3.终止,只需获取最接近的素数
break;
}
}
}
}
//判断素数
//除1以外的数 即从2开始不能被整除
public static boolean isPrime(int m){
for (int i = 2; i*i <=m ; i++) {
if (m%i==0){
return false;
}
}
return true;
}