魔术师梅林在水晶球中预见了莫德雷德的叛逆,她决定在在莫德雷德叛逆之前采取一个有效的策略保护亚瑟王。
具体做法如下:使用魔法将亚瑟王复制成N份,当然,其中只有一个使真的。她认为这样就能有效的保护亚瑟王不被杀死。
为了自己能最终找到亚瑟王,她将所有的亚瑟王按1-N编号,并设定了一个密码数字X。真亚瑟王的编号是最接近N的且不能被2−X中任何一个数整除的数。(即真亚瑟王的编号的约数不再2−X中)。
Input
两个整数X,NX,N,用一个空格隔开。
Output
真亚瑟王的编号。
Samples
Hint
【数据范围】
- 对于30%的数据,2≤X≤N≤10
- 对于60%的数据,2≤X≤N≤1000
- 对于80%的数据,2≤X≤N≤1e5
- 对于100%的数据,2≤X≤N≤1e9
Source
石光中学 2018 常州 普及组 day6
这个就是暴力:要知道相邻的素数距离很小
#include<iostream> #include<algorithm> using namespace std; typedef long long ll; ll n,x; int judge(){ if(n==1){ return 1; } if(n>=2&&n<=x){ return 0; } for(ll i=2;i*i<=n;i++){ if(n%i==0&&i<=x){ return 0; } } return 1; } int main(){ cin>>x>>n; while(n>x){ if(judge()){ cout<<n<<endl; return 0; } n--; } cout<<1<<endl; }