将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

求代码啊啊啊... 求代码啊啊啊 展开
 我来答
我走的慢
2014-12-05 · TA获得超过1504个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:149万
展开全部

#include <stdio.h>


int main()

{

    //num要分解的数

    //i已经分解出来的。

    int num,i;

    printf("please input a num:");

    scanf("%d",&num);

    printf("%d=",num);


    //分解.从1到num检查,看看是不是因子。

    for(i=2; i<=num; i++)

        while(num%i==0)

        {

            num/=i;

            printf("%d*",i);

        }


    //1:输出最后一个因子。一定是1,如果上面for有=num也输出来了,所以只剩下1

    //即:num==1;

    //2:如果for没有=num的情况,那么,不一定是1的情况,可能还是其他,可以根据自己的需要改。

    printf("%d",num);


    return 0;

}

风雷九州
2014-12-05 · TA获得超过3025个赞
知道大有可为答主
回答量:1127
采纳率:100%
帮助的人:433万
展开全部

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 

(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。

(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.

 重复执行第二步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

#include <stdio.h>

int main()
{
    //num要分解的数
    //i已经分解出来的。
    int num,i;
    printf("please input a num:");
    scanf("%d",&num);
    printf("%d=",num);

    //分解.从1到num检查,看看是不是因子。
    for(i=2; i<=num; i++)
        while(num%i==0)
        {
            num/=i;
            printf("%d*",i);
        }

    //1:输出最后一个因子。一定是1,如果上面for有=num也输出来了,所以只剩下1
    //即:num==1;
    //2:如果for没有=num的情况,那么,不一定是1的情况,可能还是其他,可以根据自己的需要改。
    printf("%d",num);

    return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坦率且飘逸丶比目鱼8
2018-02-13
知道答主
回答量:8
采纳率:0%
帮助的人:6078
展开全部
def fen(X):
    for x in range(2,X):
        if X%x==0:
            print(x,'*',end=' ')
            fen(X//x)
            break
    else:
        print(X)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式