BZOJ 1053 反素数ant

       初读这道题,一定有许多疑惑,其中最大的疑惑便是“反素数”,反素数的概念很简单,就是,a<b同时a的因数个数大于b的因数个数。但是想要完成本题还需要一些信息,关于反素数的特点:反素数的质因子必定为从2开始的连续素数,若A=2的t1次方*3的t2次方*5的t3次方*7的t4次方…则t1>=t2>=t3>=t4…知道这些题做起来就简单多了。

      但是我在这里不推荐此方法,因为用打表的方法更简单,不要被数据吓倒哟!

       代码如下:

#include <cstdio>
using namespace std;
int a[1000]={1396755360,1102701600,735134400,698377680,551350800,367567200,294053760,245044800,
183783600,147026880,122522400,110270160,73513440,61261200,43243200,36756720,32432400,
21621600,17297280,14414400,10810800,8648640,7207200,6486480,4324320,3603600,2882880,
2162160,1441440,1081080,720720,665280,554400,498960,332640,277200,221760,166320,110880,
83160,55440,50400,45360,27720,25200,20160,15120,10080,7560,5040,2520,1680,1260,840,720,360,
240,180,120,60,48,36,24,12,6,4,2,1,0};
 
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;;i++)
    {
        if(n>=a[i])
        {
            printf("%d\n",a[i]);
            return 0;
        }
    }
}

希望我的博客能对大家有所帮助,谢谢观看。

posted @ 2015-07-26 18:12  wlxy  阅读(157)  评论(0编辑  收藏  举报