T1:二进制插入
题目描述:给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。
解法:
class BinInsert{
public:
int binInsert(int n,int m,int j,int i){
return n|(m<<j);
}
};
T2:查找组成一个偶数最接近的两个素数
链接:查找组成一个偶数最接近的两个素数__牛客网 (nowcoder.com)
题目描述:
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足 4≤n≤1000
数据范围很小,直接暴力模拟
#include<iostream>
using namespace std;
int n;
bool primes(int x)
{
for(int i=2;i*i<=x;i++){
if(x%i==0)return 0;
}
return 1;
}
int main()
{
cin>>n;
for(int i=n/2;;i--){
int x=n-i;
if(primes(i)&&primes(x)){
cout<<i<<endl;
cout<<x<<endl;
break;
}
}
return 0;
}