在分解质因数的时候,一般从啥的质因数考虑?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在分解质因数的时候,一般从啥的质因数考虑?相关的知识,希望对你有一定的参考价值。

在分解质因数的时候,一般从最小质因数(即 2)开始考虑。原因是任何一个正整数都可以表示为若干个质因数的积,其中每个质因数都是唯一的,也就是说我们只需要从一个数的最小质因数开始一步步找到下一个最小质因数,然后进行分解就可以得到相应的质因数分解式。

首先,我们判断这个数是否是质数,如果是质数,那么它的质因数分解式就是它本身。否则,我们就从最小质因数 2 开始,试图将这个数分解为 $2^m$ 与 $n$ 的乘积的形式,其中 $m$ 为一个自然数。如果可以成功分解,那么 $2^m$ 就是这个数的一个质因数,而 $n$ 继续递归分解即可。

接下来,我们再逐次考虑更大的质数(比如 3、5、7、11 等),重复上述操作即可将这个数分解成所有质因数的乘积。因此,我们一般会先考虑最小质因数,然后逐渐向更大的质数推进,直到将这个数分解完毕。
参考技术A 在分解质因数的时候,一般从最小的质数考虑。

分解质因数

Description

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

Input

输入一个正整数n

Output

输出该数的质因数

Sample Input

90
12

Sample Output

90=2*3*3*5
12=2*2*3

HINT

不用考虑直接为1的情况

#include <stdio.h>
int main()
{
    //num要分解的数
    //i已经分解出来的。

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

    for(i=2; i<=num; i++)
    {
        while(num%i==0)
        {
            num/=i;
            printf("*%d",i);
        }
    }
    printf("
");

    return 0;
}

 

以上是关于在分解质因数的时候,一般从啥的质因数考虑?的主要内容,如果未能解决你的问题,请参考以下文章

分解质因数分解质因数是啥意思? 12分解质因数是??

[Codeforces 1246B] Power Products (STL+分解质因数)

c语言 分解质因数

51nod 1434 区间LCM (质因数分解)

莫比乌斯函数-质因数分解

快速求出n!质因数的个数