NYOJ 题目881小M的区间公约数(数学,水题)

来源:互联网 发布:excel2003无法粘贴数据 编辑:程序博客网 时间:2024/06/07 05:32

小M的区间公约数

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述
小M对最大公约数已经很熟悉了,今天突发奇想,她想知道区间最大的公约数。两个数a,b,然后有n组询问,每组询问[L,R],输出[L,R]区间中a,b最大的公约数,没有输出-1。
输入
第一行输入a,b, (1 ≤ a, b ≤ 10^9)
第二行输入n,(1 ≤ n ≤ 10^4)
然后接下来n行,每行[L,R]。(1 ≤ L ≤ R ≤ 10^9)
输出
输出每次询问的结果。
样例输入
9 2731 510 119 11
样例输出
3-19
上传者
TC_常红立
ac代码
#include<stdio.h>int gcd(int a,int b){int t;if(a<b){//a=t;t=a;a=b;b=t;}if(b==0)return a;elsereturn gcd(b,a%b);}int main(){int a,b,g,t;while(scanf("%d%d",&a,&b)!=EOF)//注意多组测试数据,,,要输入多组a,b{g=gcd(a,b);scanf("%d",&t);while(t--){int l,r,i,w=0;scanf("%d%d",&l,&r);if(r>g)r=g;for(i=r;i>=l;i--){if(g%i==0){w=1;break;}}if(w)printf("%d\n",i);elseprintf("-1\n");}}}


0 0
原创粉丝点击