1059 Prime Factors (25 分)

分解质因数裸题,注意对(1)特判下,为什么(1)还要分解质因数啊喂,迷惑行为-_-。

PII fac[10];
int n;
int cnt;

void divide(int n)
{
    for(int i=2;i*i<=n;i++)
        if(n % i == 0)
        {
            fac[cnt].fi=i;
            while(n % i == 0)
            {
                fac[cnt].se++;
                n/=i;
            }
            cnt++;
        }
    if(n > 1) fac[cnt++]={n,1};
}

int main()
{
    cin>>n;

    divide(n);

    cout<<n<<'=';

    if(n == 1) cout<<1;
    else
    {
        for(int i=0;i<cnt;i++)
        {
            if(i) cout<<'*';
            cout<<fac[i].fi;
            if(fac[i].se > 1) cout<<'^'<<fac[i].se;
        }
    }

   //system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/fxh0707/p/14401171.html