记录

由 for(int i=2;i<=n;i++) 改成 for(int i=2;i*i<=n;i++) ,否者用例通过11个,最后一个时间超时,时间复杂度高

using namespace std;
int main()
{
    int n=0;
    while(cin>>n)
    {     
      for(int i=2;i*i<=n;i++)  
        {  
            while(n!=i)     //若i=n,则质因数就是n本身  
            {  
                if(n%i==0)  //若i是质因数,则打印出i的值,并用商给n赋新值  
                {  
                    cout<<i<<" ";
                    n=n/i;  
                }  
                else break;//若不能被i整除,则算下一个i  
            }  
        }  
        cout<<n;
    }
    return 0;
}