问题描述
给定一个整数x,定义g(x)是x的因子个数。现在给你一个整数区间[a,b],请你求出该区间的x使g(x)最大。
输入
第一行是一个整数n,接下来总共n行。
每行两个正整数a和b, 1<=a<=b<=5000,表示闭区间[a,b]。
输出
对每组测试数据,在单独的一行中输出一个整数,即对应的区间因子最多的数,如果满足条件有多个,则输出其中最小的数。
输入样列
3
2 3
1 10
47 359
输出样例
2
6
240
#include<stdio.h>
int main()
{
int t;
int a,b,max,z,num;
int i,j;
scanf("%d",&t);
while(t--){
max=0;
z=0;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++){
for(j=1;j<i/2;j++){
if(i%j==0) z++;
}
if(z>max){
max=z;
num=i;
}
}
printf("%d\n",num);
}
return 0;
}