80分求助
查看原帖
80分求助
400205
basachenboming楼主2021/5/23 17:29
#include <bits/stdc++.h>
using namespace std;
int aa[1001];
int gcd(int x, int y) {
	if(y==0)
		return x;
	return gcd(y,x%y);
}

int read() {
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9') {
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
	return x*f;
}

void write(int x) {
	if(x<0) putchar('-'),x=-x;
	if(x>9) write(x/10);
	putchar(x%10+'0');
}
int main() {
	int a,b;
	a=read();
	b=read();
	int c,d;
	int ans;
	for(register int i=1; i<=a; i++) {
		aa[i]=read();
	}
	for(register int j=1; j<=b; j++) {
		c=read();
		d=read();
		if(c==d) {
			cout<<aa[c]<<endl;
			continue;
		}
		ans=aa[c];
		for(register int i=c; i<=d; i++) {
			ans=gcd(ans,aa[i]);
			if(ans==1) {
				cout<<1<<endl;
				continue;
			}
		}
		write(ans);
		cout<<endl;
	}

	return 0;
}
2021/5/23 17:29
加载中...