GDUFE ACM-1049

题目:http://acm.gdufe.edu.cn/Problem/read/id/1049

 

因子数

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

已知g(x)是x的因子个数,现求一个整数区间[a,b],请你求出该区间的x使g(x)最大。

Input:

第一行输入n,接下来n行测试数据
输入包括a,b, 1<=a<=b<=5000,表示闭区间[a,b].

Output:

输出为一个整数,为该区间因子最多的数.如果满足条件有多个,则输出其中最小的数.

Sample Input:

3
2 3
1 10
47 359

Sample Output:

2
6
240

思路:在区间内一个个的判断其因数有多少个,把较多的保留下来

难度:简单

代码:
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,a,b,c,d,i;
 5     int divi(int n);
 6     while(~scanf("%d",&n))
 7     {
 8         while(n--)
 9         {
10             d=c=0;
11             scanf("%d%d",&a,&b);
12             for(i=a;i<=b;i++)
13                 {
14                     if(divi(i)>d)
15                     {
16                      d=divi(i);
17                      c=i;
18                     }
19                 }
20             printf("%d\n",c);
21         }
22     }
23     return 0;
24 }
25 
26 int divi(int n)
27 {
28     int i,c=0;
29     for(i=1;i<=n;i++)
30     {
31         if(n%i==0)
32             c++;
33     }
34     return c;
35 }

 

posted @ 2016-10-28 19:47  ruoruoruoruo  阅读(113)  评论(0编辑  收藏  举报