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

求代码啊啊啊
2024-11-22 07:06:10
推荐回答(3个)
回答(1):

#include


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;

}

回答(2):

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

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

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

 重复执行第二步。

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

#include 

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;
}

回答(3):

def fen(X):
    for x in range(2,X):
        if X%x==0:
            print(x,'*',end=' ')
            fen(X//x)
            break
    else:
        print(X)