zoukankan      html  css  js  c++  java
  • Bzoj3629--Jloi2014聪明的燕姿

    蒟蒻不知道约数和公式。QAQ

    然后自己手玩出来了,但是没去想DFS- -|

    反正这篇博文也只是记录一下自己的愚蠢,代码就贴的是popoqqq神犇的代码。

    顺便约数和公式  : 设n=p1^k1*p2^k2.....pn^kn , D_sum(n) = (p1^0+p1^1+..+p1^k1)*(p2^0+p2^1+....+p2^k2)*...*(pn^0+pn^1+..+pn^n)

    代码:

    #include<cstdio>  
    #include<cstring>  
    #include<iostream>  
    #include<algorithm>  
    #define M 100100  
    using namespace std;  
    typedef long long ll;  
    ll n,p[M],ans[M],tot;  
    bool not_prime[M];  
    void Get_Prime()  
    {  
        int i,j;  
        for(i=2;i<=100000;i++)  
        {  
            if(!not_prime[i])  
                p[++p[0]]=i;  
            for(j=1;p[j]*i<=100000&&j<=p[0];j++)  
            {  
                not_prime[p[j]*i]=1;  
                if(i%p[j]==0)  
                    break;  
            }  
        }  
    }  
    bool Judge_Prime(ll x)  
    {  
        ll i;  
        if(x==1)  
            return 0;  
        for(i=1;p[i]*p[i]<=x;i++)  
            if(x%p[i]==0)  
                return 0;  
        return 1;  
    }  
    void DFS(ll now,int pos,ll left)  
    {  
        int i;  
        if(left==1)  
        {  
            ans[++ans[0]]=now;  
            return ;  
        }  
        if( left-1>=p[pos] && Judge_Prime(left-1) )  
            ans[++ans[0]]=(left-1)*now;  
        for(i=pos; p[i]*p[i]<=left ;i++)  
        {  
            ll power_sum=p[i]+1,power=p[i];  
            for(;power_sum<=left;power*=p[i],power_sum+=power)  
                if(left%power_sum==0)  
                    DFS(now*power,i+1,left/power_sum);  
        }  
    }  
    int main()  
    {  
        int i;
        Get_Prime();  
        while(~scanf("%lld",&n))  
        {  
            ans[0]=0;tot=0;  
            DFS(1,1,n);  
            sort(ans+1,ans+ans[0]+1);  
            cout<<ans[0]<<endl;  
            for(i=1;i<=ans[0];i++)  
                printf("%lld%c",ans[i],i==ans[0]?'
    ':' ');
        }  
    }
  • 相关阅读:
    树莓派摄像头直播程序,非常希望有贡献者一起玩
    Ansible 操作windows
    Python实现自平衡二叉树AVL
    Python非递归遍历多叉树
    Python 非递归遍历图
    使用ffmpeg进行网络直播
    Python安装mysqldb
    运维工程师速成
    科幻小说《霜与火》 by 雷·布雷德伯里
    jvm 内存调整
  • 原文地址:https://www.cnblogs.com/ihopenot/p/5959590.html
Copyright © 2011-2022 走看看