分解质因数算法

     短除法。每个合数都可以写成一系列质数的积,从最小的质因数除起,一直除到结果为质数为止。

     从2开始,如果x可以整除它,就除一下,break掉for,再从2开始除,这个i绝对不会出现合数因为之前已经把该除的除过了。

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long ll;
void get_prime(int x)
{
    while(x>1)
    {
        for(int i=2;i<=x;i++)
        {
            if(x%i==0)
            {
                x=x/i;
                cout<<i<<"  ";
                break;
            }
        }
    }
    cout<<endl;
}
int main()
{
    int n;
    while(cin>>n)
    {
        get_prime(n);
    }
}

 

posted @ 2020-03-23 18:13  liyexin  阅读(658)  评论(0编辑  收藏  举报