2011-12-20 06:44:37
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2521
题意:中文。
mark:反素数直接for for暴力求,约莫计算不到10w次。查询可用ST算法,但这题没必要,直接扫就好了。
代码:
# include <stdio.h>
int factor[5010] ;
void init()
{
int i, j ;
for (i = 2 ; i <= 5000 ; i++)
{
for (j = i ; j <= 5000 ; j+= i)
factor[j] ++ ;
}
}
int main()
{
int T, a, b, i, ans ;
init() ;
scanf ("%d", &T) ;
while (T--)
{
scanf ("%d%d", &a, &b) ;
ans = a ;
for (i = a+1 ; i <= b ; i++)
if (factor[i] > factor[ans]) ans = i ;
printf ("%d\n", ans) ;
}
return 0 ;
}