题解 | #质数因子#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

记录

由 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;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务