加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C程序练习-使用递归求一个数分解质因数

(2015-10-10 22:51:26)
今天看到一个题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。题目中给出了解题的分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 

  (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

  (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

  (3)如果n不能被k整除,则用k 1作为k的值,重复执行第一步。
    例题中给出了C程序的源程序,不过我想用递归进行操作。经过调试终于调试通过了代码如下:

#include <</span>stdio.h>

void fenjie_zhiyinshu(int); 
int main(int argc,int *argv[])
{
    int number;
    printf("please input a numer:");
    scanf("%d",&number);
    fenjie_zhiyinshu(number);
    system("pause");
    return 0;
}

void fenjie_zhiyinshu(int number)
{
    int i,j,k;
    for (= 2; <</span>= number; i++)
    { 
        if (number % == 0)
        {
           = number / i;
           if (== 1)
           {
              printf("%d",i);
              return ;
           }
           else
           {
             printf("%d * ",i);
             fenjie_zhiyinshu(j);
             break;
           }
        }
    }
}


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有