将一个自然数分解为一系列素数的乘积,该如何处理

将一个自然数分解为一系列素数的乘积
怎么分?C++6.0

------解决方案--------------------
http://zhaojian2006.blog.enorth.com.cn/article/155167.shtml
------解决方案--------------------
虽然在时间上不可能达到很快,但绝对是有办法做得到的。请看以下代码:
C/C++ code
#include <iostream>
using namespace std;
#include <math.h>

bool bSushu(int num){ // 该函数用来判断num是否是一个素数
    if(num <= 1)
        return false;

    int mid = pow(num, 0.5);
    int i;
    for(i=2; i<=mid; i++){
        if(num%i == 0)
            break;
    }
    return (i>mid) ? true : false;
}

void Divide(int num){ // 递归分解
    if(bSushu(num)){
        cout<<num<<" ";
        return;
    }

    int i;
    for(i=2; i<num; i++){
        if( bSushu(i) && num%i == 0 ){
            Divide(num/i);
            cout<<i<<" ";
            return;
        }
    }
}

void main(){
    int num;
    cout<<"Please input a number:";
    cin>>num;
    cout<<"It could be divided into:"<<endl;
    Divide(num);
}