B. Longest Divisors Interval

link

需要思考一下
如果这个题能做,那么肯定有一种比较可行的做法。
如果\([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;
}
posted @ 2023-08-08 17:16  Simex  阅读(23)  评论(0编辑  收藏  举报