二进制插入
描述
给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。
测试样例:
1024,19,2,6
返回:1100
import java.util.*;public class BinInsert {public int binInsert(int n, int m, int j, int i) {// write code hereint tmp=m<<j;//异或的含义是:不同的为1,相同的为0return tmp|n;}
}
查找组成一个偶数最接近的两个素数
描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足
4≤≤1000
4≤n≤1000
输入描述:
输入一个大于2的偶数
输出描述:
从小到大输出两个素数
示例1
输入:
20
复制
输出:
7
1
import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);//对半开始,从一半往下走,判断最小的情况int n=in.nextInt();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);break;}}}//判断是不是素数public static boolean isPrime(int i){for(int j=2;j<i;j++){if(i%j==0){return false;}}return true;}
}