#include<cstdio>
#include<cmath>
int ff[5000]={0};
void fun()
{
int i,j;
for(i=1;i<=5000;i++)
for(j=1;j<sqrt(i);j++)
if(i%j==0) ff[i]++;
}
int main()
{
fun();
int n,a,b,i,mymax;
scanf("%d",&n);
while(n--){
scanf("%d%d",&a,&b);
mymax=-1000;
for(i=a;i<=b;i++){
if(ff[i]>mymax) mymax=ff[i];
}
for(i=a;i<=b;i++){
if(ff[i]==mymax) break;
}
printf("%d\n",i);
}
return 0;
}
反素数
在网上没看见用我这种方法做的,记录一下,希望给更多人不同的思路。