c++分解因数

来源:互联网 发布:程序员需要什么学历 编辑:程序博客网 时间:2024/06/06 05:41
#include <iostream>#include <string>#include <sstream>using namespace std;void  resolve(int n,int start,string c){    //start比n大的情况在之前已经完成,所以不做任何操作    if (n==1) {//已经不能再分解        c+="1";        cout<<c<<endl;        return;    }    else{        for (int i=start; i<=n; i++) {            if (n%i==0) {                stringstream ss;//把因数从int转为string                ss<<i;               string c1=c+ss.str()+"*";//c1保存之前的因数和当前的因数继续往下走。                resolve(n/i, i,c1);            }        }    }}int main(){    int a;    while (scanf("%d",&a)!=EOF) {        string c="";        resolve(a, 2,c);        cout<<c;    }}





原创粉丝点击