zoukankan      html  css  js  c++  java
  • Prime Land(poj 1365)

    题意:这题题意难懂,看了题解才知道的。比如第二组sample,就是5^1*2^1=10, 求10-1即9的质因数分解,从大到小输出,即3^2.本来很简单的嘿,直接最快速幂+暴力最裸的就行了。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #define M 100010
    #define ll long long
    using namespace std;
    ll x[M],y[M],sum,ans1[M],ans2[M];
    int cnt;
    ll poww(ll a,ll b)
    {
        ll r=1,base=a;
        while(b)
        {
            if(b&1)r*=base;
            base*=base;
            b/=2;
        }
        return r;
    }
    int main()
    {
        while(1)
        {
            cnt=0;sum=1;
            memset(x,0,sizeof(x));
            memset(y,0,sizeof(y));
            while(1)
            {
                ++cnt;
                ll num=0;char c=getchar();
                while(c>='0'&&c<='9')
                  num=num*10+c-'0',c=getchar();
                x[cnt]=num;
                if(num==0)return 0;
                num=0;c=getchar();
                while(c>='0'&&c<='9')
                  num=num*10+c-'0',c=getchar();
                y[cnt]=num;
                if(c=='
    ')break;
            }
            for(int i=1;i<=cnt;i++)
              sum*=poww(x[i],y[i]);
              
            cnt=0;sum--;
            for(ll i=2;i<=sum;i++)
            {
                ll tot=0;
                while(sum&&sum%i==0)
                  sum/=i,tot++;
                if(tot)
                {
                    ++cnt;ans1[cnt]=i;ans2[cnt]=tot;
                }
                if(sum==0)break;
            }
            for(ll i=cnt;i>=1;i--)
              cout<<ans1[i]<<" "<<ans2[i]<<" ";
            printf("
    ");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Python文件的两种用途
    模块的搜索路径
    循环导入问题
    import和from...import
    模块的四种形式
    函数小结
    面向过程编程
    内置函数
    匿名函数
    递归
  • 原文地址:https://www.cnblogs.com/harden/p/5840258.html
Copyright © 2011-2022 走看看