zoukankan      html  css  js  c++  java
  • 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;
    }




  • 相关阅读:
    How To Scan QRCode For UWP (4)
    How To Crop Bitmap For UWP
    How To Scan QRCode For UWP (3)
    How To Scan QRCode For UWP (2)
    How To Scan QRCode For UWP (1)
    How to change windows applicatioin's position via Win32 API
    8 Ways to Become a Better Coder
    How to resize or create a thumbnail image from file stream on UWP
    C# winform压缩文件夹带进度条
    MS ACCESS MID函数
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563640.html
Copyright © 2011-2022 走看看