• p1863


    本题的那个操作可以想到相当于把自己的一个质因数给了别人.

    那么既然大家的质因数可以共享,不如我们先给同一个人,然后再均分.均分后的那个数就是调整完的最大公约数.

    那么本题的策略就有了,找到所有数的所有质因子与质数和,答案是∏prime[i]^(⌊sum[prime[i]]/n⌋);

    做第二问的时候可以查看所有数的答案包含的那个质因子的指数是多少,如果少了当然要别人送来,多了不一定需要给别人.23333.总之统计比平均少多少就好.

    using namespace std;
    int quick(int a,int b)//a^b
    {
        int ans=1;
        while(b>0)
        {
            if(b%2==1) ans=ans*a;
            b=b/2;a=a*a;
        }
        return ans;
    }
    int i,f,t;
    int n;
    int v[1000010],prime[80000];
    int sum,o[110][80000],a[110][80000],ans;
    int main()
    {
    //freopen("123.in","r",stdin);
    //freopen("123.out","w",stdout);
        n=1000000;
        for(i=2;i<=n;i++)
        {
            if(v[i]==0)
            {
                sum++;
                v[i]=i;
                prime[sum]=i;
            }
            for(f=1;f<=sum;f++)
            {
                if(prime[f]>v[i]||prime[f]>n/i)break;
                v[i*prime[f]]=prime[f];
            }
        }
        memset(v,0,sizeof(v));
        for(n=read(),i=1;i<=n;i++)
        {
            
            t=read();
            for(f=1;f<=sum&&t>=prime[f];f++)
            {
                if(t%prime[f]==0)
                {
                    while(t%prime[f]==0)
                    {
                        a[i][f]++;
                        v[f]++;
                        t=t/prime[f];
                    }
                }
            }
        }
        ans=1;
        for(i=1;i<=sum;i++)
        {
            v[i]=v[i]/n;
            if(v[i]!=0)
                ans=ans*quick(prime[i],v[i]);
        }
        write(ans);
        ans=0;
        for(i=1;i<=n;i++)
        {
            for(f=1;f<=sum;f++)
                if(v[f]>a[i][f])
                    ans+=v[f]-a[i][f];
        }
        cout<<ans;
    }
  • 相关阅读:
    佛教-著作:《般若泼若密心经》
    学科-几何:分形几何学
    战国-散文:《生于忧患,死于安乐》
    北宋-词:《临江仙·送王缄》
    音乐:《河西走廊之梦》
    影视-纪录片:《河西走廊》
    汉语-汉字:黾
    动物-昆虫:水螳螂
    动物-昆虫:水黾
    主程的晋升攻略(3):IP、DNS和CDN
  • 原文地址:https://www.cnblogs.com/qywyt/p/9745674.html
Copyright © 2020-2023  润新知