hdoj 2521 反素数(水!和素数没半毛钱关系)

来源:互联网 发布:js跨域解决方案c# 编辑:程序博客网 时间:2024/05/01 23:41

                                   反素数

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


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
32 31 1047 359
 

Sample Output
26240
Hint
2的因子为:1 210的因子为:1 2 5 10
 
AC CODE:
#include<stdio.h>#include<string.h>int main(){    int i,j,s[5500];memset(s,0,sizeof(s));int n;for(i=1;i<5500;i++)  for(j=1;j<=i;j++)     if(i%j==0)     s[i]++;//printf("%d\n",s[12]);    scanf("%d",&n);    while(n--)    {int temp,k=0,max=0,a,b;scanf("%d%d",&a,&b);for(i=a;i<=b;i++)if(max<s[i])max=s[i];//printf("%d$\n",max);for(i=a;i<=b;i++)  if(s[i]==max){temp=i;break;}printf("%d\n",temp);}return 0;}

0 0