文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C程序练习-使用递归求一个数分解质因数

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

时间:2010-07-21  来源:chengxiaopeng

    今天看到一个题目:将一个正整数分解质因数。例如:输入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 <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 (i = 2; i <= number; i++)
    {
        if (number % i == 0)
        {
           j = number / i;
           if (j == 1)
           {
              printf("%d",i);
              return ;
           }
           else
           {
             printf("%d * ",i);
             fenjie_zhiyinshu(j);
             break;
           }
        }
    }
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载