【程序14】
题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。

2.程序源代码:

main()
{
    int n,i;
    printf("/nplease input a number:/n");
    scanf("%d", &n);
    printf("%d=", n);

    for (i=2; i<=n; i++)
    {
        while (n != i)
        {
            if ((n % i) == 0)
            {
                printf("%d*", i);
                n = n/i;
            }
            else
            break;
      }
    }
    printf("%d",n);
}

此题的算法值得借鉴

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐