HDU-2521 反素数

                              反素数

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3548    Accepted Submission(s): 2039

Problem Description
反素数就是满足对于任意i(0<i<x),都有g(i)<g(x),(g(x)是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
Hint
2的因子为:1 2 10的因子为:1 2 5 10
 
 1 #include<stdio.h>
 2 #include<string.h>
 3 int cmp(int x)
 4 {
 5     int i,k=0;
 6     for(i=1;i<=x;i++)
 7         if(x%i==0)
 8             k++;
 9     return k;    
10 }
11 int main()
12 {
13    int t,a,b,i,max,k;
14      scanf("%d",&t);
15    while(t--)
16    {
17         scanf("%d%d",&a,&b);
18         max=0;k=0;
19        for(i=a;i<=b;i++)
20        {
21           if(cmp(i)>max)
22           { 
23                max=cmp(i);
24                k=i;
25              
26           }
27        }
28        printf("%d
",k);
29    }
30    return 0;
31 }
原文地址:https://www.cnblogs.com/cancangood/p/3423868.html