题解
2025-02-09 22:22:11
发布于:江苏
71阅读
0回复
0点赞
我们知道,对于一个正整数 ,从 开始,每次增加 ,所得的结果一定能被 整除。因此可以得出,对于区间 中的任意一个数,区间 中一定能找到一个数是它的整数倍。所以在题目中,我们可以假定 ,这样一定能得到最大的满足条件的区间。所以将 的值从 开始循环即可。每次的时间复杂度接近 。
代码如下:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,i;
void solve()
{
cin>>n;
for(i=1;;i++)if(n%i)break;
cout<<i-1<<endl;
return ;
}
signed main()
{
int T;cin>>T;
while(T--)solve();
return 0;
}
这里空空如也
有帮助,赞一个