题目描述
输入两个正整数 p,y
(2≤p≤y≤109
),然后挂会找到一个最大的不超过 y
的正整数 k
,满足 k
不是 2∼p
中任意一个数的倍数。容易发现,这样的 k
一定存在,因为 1
始终满足条件。
输入格式
一行两个正整数 p,y
。
输出格式
一行一个正整数表示答案。
限制与约定
对于 10%
的数据,p,y≤100
。
对于 50%
的数据,p,y≤105
。
对于 100%
的数据,2≤p≤y≤109
。
时间限制:1s
空间限制:512MB
20分代码附上
#include<bits/stdc++.h>
using namespace std;
long long p,y;
int main()
{
cin>>p>>y;
for(int i=y;i>min(p,y-200);i--)
{
for(int j=2;j<=min((long long)sqrt(i),p);j++)
{
if(i%j==0)
continue;
cout<<i;
return 0;
}
}
cout<<1;
}
思路有点乱,求大佬指正