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

     从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);
}
}