当前位置:编程学习 > C/C++ >>

整数因子分解问题的递归算法

整数因子分解问题
´问题描述:
大于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++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,