需要思考一下
如果这个题能做,那么肯定有一种比较可行的做法。
如果\([l,r]\)是可行的,那么就意味着\([1,r-l+1]\)是可行的
这是显然的,显然后者的每一个数在前者中必然有对应的倍数,所以等效。
这样从1开始找就行了。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<ctime>
#include<bitset>
using namespace std;
int t;
long long n;
int main(){
scanf("%d",&t);
while(t--){
scanf("%lld",&n);
long long i;
for(i=1;i<=10000000;++i){
if(n%i!=0) break;
}
cout<<i-1<<endl;
}
return 0;
}
标签:int,scanf,Interval,long,Longest,include,Divisors
From: https://www.cnblogs.com/For-Miku/p/17614905.html