CodeForces937B:Vile Grasshoppers(素数性质)

Posted ---学习ing---

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces937B:Vile Grasshoppers(素数性质)相关的知识,希望对你有一定的参考价值。

The weather is fine today and hence it‘s high time to climb the nearby pine and enjoy the landscape.

The pine‘s trunk includes several branches, located one above another and numbered from 2 to y. Some of them (more precise, from 2 to p) are occupied by tiny vile grasshoppers which you‘re at war with. These grasshoppers are known for their awesome jumping skills: the grasshopper at branch x can jump to branches 技术分享图片.

Keeping this in mind, you wisely decided to choose such a branch that none of the grasshoppers could interrupt you. At the same time you wanna settle as high as possible since the view from up there is simply breathtaking.

In other words, your goal is to find the highest branch that cannot be reached by any of the grasshoppers or report that it‘s impossible.

Input

The only line contains two integers p and y (2 ≤ p ≤ y ≤ 109).

Output

Output the number of the highest suitable branch. If there are none, print -1 instead.

Examples
input
3 6
output
5
input
3 4
output
-1
Note

In the first sample case grasshopper from branch 2 reaches branches 2, 4 and 6 while branch 3 is initially settled by another grasshopper. Therefore the answer is 5.

It immediately follows that there are no valid branches in second sample case.

 

题意:给定P和Y,求最大的X,满足<=Y,且不是2到P的倍数。

思路: 没想到是暴力求解。。。这里利用了一个性质,1e9范围内相邻的素数距离不超过300。所以我们从Y向下验证是否是“素数”,这里的素数指的的无[2,P]区间的因子。可以想象,由于可以除的数少了,这些“素数”的距离比300更加接近,而检验素数的复杂度不超过根号。于是复杂度<O(300*sqrt(1e9));

#include<bits/stdc++.h>
using namespace std;
int P,Y;
bool isprime(int x){
    for(int i=2;i<=P&&i*i<=x;i++){
        if(x%i==0) return false;
    } return true;
}
int main()
{
    scanf("%d%d",&P,&Y);
    for(int i=Y;i>P;i--){
        if(isprime(i)) {
            printf("%d\n",i);
            return 0;
        }
     }
     printf("-1\n");
     return 0;
}

 

 

 

 

 

以上是关于CodeForces937B:Vile Grasshoppers(素数性质)的主要内容,如果未能解决你的问题,请参考以下文章

qgis 找不到grass,要指定grass的安装路径吗

草地 grass 渲染

HDU1849 Rabbit and Grass()

Watering Grass (贪心,最小覆盖)

无法读取未定义的属性“草”

hdu 1849 Rabbit and Grass