地址 CF937B
给你两个数 p,y ,求去掉2-y中所有2-p的数的倍数后剩下的最大值!
#include<bits/stdc++.h>
using namespace std;
int p,y;
bool check(int n){
for(int i=2;i<=sqrt(n)&&i<=p;i++){ //枚举从2开始,然后到p结束,或者到 传进来的值的sqrt()结束,
if(n%i==0){
return false;
}
}
return true;
}
int main(){
scanf("%d%d",&p,&y);
for(int j=y;j>p;j--){ //枚举从y到大于p 的数字,因为如果比p还小的话,肯定不成立,绝对会有
//一个数就是他本身,
if(check(j)){
printf("%d\n",j); //逆向枚举!,最优化!
return 0;
}
}
printf("-1\n");
}