• HDU2521 反素数【因子数量+打表】


    反素数

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

    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
     Source


    问题链接HDU2521 反素数

    题意简述:参见上文。

    问题分析

    题目为反素数,实际上与素数似乎没有关系,不过是一个定义而已。

    关键是计算整数的因子个数,求区间的中的x使得g(x)即x的因子个数为最大。

    程序说明:本程序采用ACM题最普通的套路,为避免重复计算就先打表。把功能封装到函数中也是一种值得推荐的做法。


    AC的C语言程序如下:

    /* HDU2521 反素数 */
    
    #include <stdio.h>
    
    #define N 5000
    
    int apcount[N+1];         /* antiprime count */
    
    int getapcount(int n)
    {
        int count = 1, i;
        for(i=2; i<=n/2; i++)
            if(n % i == 0)
                count++;    /* 因子个数计数 */
        if(n != 1)
            count++;        /* 不是1则自身因子需要加上 */
        return count;
    }
    
    void setapcount(int n)
    {
        int i;
    
        apcount[0] = 0;
        for(i=1; i<=n; i++)
            apcount[i] = getapcount(i);
    }
    
    int main(void)
    {
        setapcount(N);
    
        int n, a, b, max, maxval, i;
    
        scanf("%d", &n);
        while(n--) {
            scanf("%d%d", &a, &b);
    
            max = maxval = 0;
            for(i=a; i<=b; i++)
                if(apcount[i] > maxval) {
                    maxval = apcount[i];
                    max = i;
                }
    
            printf("%d
    ", max);
        }
    
        return 0;
    }




  • 相关阅读:
    Python3+PyMysql
    Python3 pip
    Python日志模块封装
    SVN状态图标无法显示
    添加修改数据库表以及字段描述信息
    群晖 6 控制面板信息中心 空白解决
    nextcloud迁移后报权限问题
    ESXI中第三方sata卡遇到的问题“对 CDROM 映像文件 执行操作失败”
    网站推荐 印章制作大师
    转 黑群晖7.0.1和6.0 中Active Backup for Business套件激活方法
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563640.html
Copyright © 2020-2023  润新知