您的位置:首页 > 编程语言 > C语言/C++

【C++学习】【算法学习】算法设计与分析 2- 11整数因子分解问题

2019-03-10 20:10 621 查看

比较笨的方法:
先用枚举法找到其因子,再递归拆解因子(同样是枚举法),每找到一次因子或成功拆解因子则计数器增加一次。
(注:找到因子后一个数会分成两个因子相乘,要么只拆前者要么只拆后者,否则会有重复计数)
代码如下:

#include <iostream>
using namespace std;

int fun1(int x){		//算法函数
int count = 0;
int i = x;

while( --i >=2){
if(x % i != 0)
continue;
if(x % i ==0){
count += fun1(x/i);
}
}

return (++count);
}

int main(){		//为满足题目格式要求
int sum,x;
FILE *number,*answer;

number = fopen("input.txt","r");
fscanf(number,"%d",&x);
fclose(number);
sum = fun1(x);
answer = fopen("output.txt","w");
fprintf(answer,"%d",sum);
fclose(answer);
cout << "DONE" <<endl;
}

本人还在初学阶段,如有错误,恳请指教。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: