#21339: C++寫法


36563120 (雨)

學校 : 國立彰化師範大學
編號 : 121990
來源 : [120.107.188.16]
最後登入時間 :
2020-06-26 03:42:56
a010. 因數分解 | From: [120.107.188.16] | 發表日期 : 2020-05-18 22:38

#include <bits/stdc++.h>

using namespace std;

 

int main()

{

    int input;

    while(cin>>input)

    {

        int i,output1[100]={0},output2[100]={0},output_count=0,temp=input;

        for(i=2;i<temp;i++)

        {

            if(input%i==0)

            {

                output1[output_count]=i;

                while(input%i==0)

                {

                    input/=i;

                    output2[output_count]++;

                }

                output_count++;

            }

        }

        if(input==2||input==3||output1[0]==0)

            cout<<input<<endl;

        else

        {

            for(i=0;i<output_count;i++)

            {

                if(output2[i]==1)

                    cout<<output1[i];

                else

                    cout<<output1[i]<<"^"<<output2[i];

                if(i!=output_count-1)

                    cout<<" * ";

            }

            cout<<endl;

        }

    }

    return 0;

}

關於 for(i=2;i<temp;i++) 我想不到更優寫法

卡在21ms無法更快,求大神指導

 
ZeroJudge Forum