Responsive image

问题 2180 --Round #4 H

2180: Round #4 H

时间限制: 1 Sec  内存限制: 128 MB
提交: 6  解决: 2
[提交][状态][讨论版][命题人:]

题目描述

yp过上幸福的生活之后,他的队友感觉他的训练跟不上,可是他真的很强,于是他的队友问过他的对象ch之后知道了他的弱点,并且针对他的弱点出了一道题。意气风发的yp看到题之后说:这题你给新生出还差不多。于是(手动狗头保命)

 d(n)=n的约数个数。

给定 s,求最小的 k满足

输入描述

一行一个数: s

输出描述

一行一个数: k

样例输入

9

样例输出

5

提示


保证答案1<=k<=10e6 



对样例的解释








对样例的解释:



 1的约数有 1,有 1 个约数;



 2的约数有1 ,2有 2 个约数;



 3的约数有 1,3有  2个约数;



 4的约数有 1, 2 , 4有  3个约数;



 5的约数有 1,5 有  2个约数;



此时和为10 超过9 



定义过大的数组可以在主函数上定义;



参考代码:



#include <iostream>

using namespace std;

const int n=1e6+ 2;

int num[n];

int main()

{

    int h,i,y=0;

    cin>>h;

    for(i=1;i<n;i++)

    {

        for(int j=i;j<n;j+=i)

        {

            num[j]++;

        }

        y+=num[i];

        if(y>=h)

            break;

    }

    cout<<i<<endl;

    return 0;

}

来源

[提交][状态]
ACM算法攻关部