跪求大神指点
题目描述:
[001]质因数分解 [EASY]
Time Limit: 1000 ms Memory Limit: 65536 KB
Total Submit: 934 Accepted: 309
Description
找出输入整数的所有质因数(包括重复质因数),并按从小到大的顺序依次输出。
Input
输入一组待分解整数,每个整数k占一行。
保证所有的输入数字1 <= k < 2^21
Output
输出每个输入整数的所有质因数(按因子从小到大的顺序输出),质因数之间用空格隔开。
(每个数后边跟个空格就行,结果只有一个数的时候也跟个空格)
Sample Input
4
7
12
Sample Output
2 2
7
2 2 3
下面是我写的代码:
#include<iostream>
using namespace std;
void fun(int n)
{
int i=2;
if(n==1)
{
cout<<1<<" ";
}
while(n>0)
{
if(n%i!=0)
{
i++;
}
else
{
cout<<i<<" ";
n=n/i;
i=2;
}
}
cout<<endl;
}
int main()
{
int n;
while(cin>>n)
{
fun(n);
}
return 0;
}