整数因子分解问题的递归算法
整数因子分解问题
´问题描述:
大于1 的正整数n 可以分解为:n=x1 *x 2*…*xm 。
例如,当n= 12 时,共有8 种不同的分解式:
12= 12;
12=6*2;
12=4*3;
12=3*4;
12=3*2*2;
12=2*6;
12=2*3*2;
12=2*2*3。
´编程任务:
对于给定的正整数n,编程计算n 共有多少种不同的分解式。
[cpp]
#include <stdio.h>
#include <stdlib.h>
int q=0;
void slove(int n){
int i;
if(n==1){
q++;
return;
}else{
for(i=2;i<=n;i++){
if(n%i==0){
//q++;
slove(n/i);
}
}
}
}
int main(){
int num;
printf("请输入一个数:\n");
scanf("%d",&num);
slove(num);
printf("%d",q);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int q=0;
void slove(int n){
int i;
if(n==1){
q++;
return;
}else{
for(i=2;i<=n;i++){
if(n%i==0){
//q++;
slove(n/i);
}
}
}
}
int main(){
int num;
printf("请输入一个数:\n");
scanf("%d",&num);
slove(num);
printf("%d",q);
return 0;
}
补充:软件开发 , C++ ,