【因式分解】12000的因数有多少个?

1. 题目

12000的因数有多少个?

2. 枚举法求解

2.1 分解质因数

2 ∣ 12000 ‾ 2 ∣ 6000 ‾ 2 ∣ 3000 ‾ 2 ∣ 1500 ‾ 2 ∣ 750 ‾ 3 ∣ 375 ‾ 5 ∣ 125 ‾ 5 ∣ 25 ‾ 5 2\underline{|12000}\\ \enspace2\underline{|6000}\\ \enspace2\underline{|3000}\\ \enspace2\underline{|1500}\\ \enspace\enspace2\underline{|750}\\ \enspace\enspace3\underline{|375}\\ \enspace\enspace5\underline{|125}\\ \enspace\enspace\enspace5\underline{|25}\\ \enspace\enspace\enspace\enspace\enspace5\\ 2∣120002∣60002∣30002∣15002∣7503∣3755∣1255∣255
整理得:
12000 = 2 5 × 3 1 × 5 3 12000 = 2^5×3^1×5^3 12000=25×31×53


2.2 枚举

序号质因数
1 1 = 2 0 × 3 0 × 5 0 1=2^0×3^0×5^0 1=20×30×50
2 5 = 2 0 × 3 0 × 5 1 5=2^0×3^0×5^1 5=20×30×51
3 25 = 2 0 × 3 0 × 5 2 25=2^0×3^0×5^2 25=20×30×52
4 125 = 2 0 × 3 0 × 5 3 125=2^0×3^0×5^3 125=20×30×53
5 3 = 2 0 × 3 1 × 5 0 3=2^0×3^1×5^0 3=20×31×50
6 15 = 2 0 × 3 1 × 5 1 15=2^0×3^1×5^1 15=20×31×51
7 75 = 2 0 × 3 1 × 5 2 75=2^0×3^1×5^2 75=20×31×52
8 375 = 2 0 × 3 1 × 5 3 375=2^0×3^1×5^3 375=20×31×53
9 2 = 2 1 × 3 0 × 5 0 2=2^1×3^0×5^0 2=21×30×50
10 10 = 2 1 × 3 0 × 5 1 10=2^1×3^0×5^1 10=21×30×51
11 50 = 2 1 × 3 0 × 5 2 50=2^1×3^0×5^2 50=21×30×52
12 250 = 2 1 × 3 0 × 5 3 250=2^1×3^0×5^3 250=21×30×53
13 6 = 2 1 × 3 1 × 5 0 6=2^1×3^1×5^0 6=21×31×50
14 30 = 2 1 × 3 1 × 5 1 30=2^1×3^1×5^1 30=21×31×51
15 150 = 2 1 × 3 1 × 5 2 150=2^1×3^1×5^2 150=21×31×52
16 750 = 2 1 × 3 1 × 5 3 750=2^1×3^1×5^3 750=21×31×53
17 4 = 2 2 × 3 0 × 5 0 4=2^2×3^0×5^0 4=22×30×50
18 20 = 2 2 × 3 0 × 5 1 20=2^2×3^0×5^1 20=22×30×51
19 100 = 2 2 × 3 0 × 5 2 100=2^2×3^0×5^2 100=22×30×52
20 500 = 2 2 × 3 0 × 5 3 500=2^2×3^0×5^3 500=22×30×53
21 12 = 2 2 × 3 1 × 5 0 12=2^2×3^1×5^0 12=22×31×50
22 60 = 2 2 × 3 1 × 5 1 60=2^2×3^1×5^1 60=22×31×51
23 300 = 2 2 × 3 1 × 5 2 300=2^2×3^1×5^2 300=22×31×52
24 1500 = 2 2 × 3 1 × 5 3 1500=2^2×3^1×5^3 1500=22×31×53
25 8 = 2 3 × 3 0 × 5 0 8=2^3×3^0×5^0 8=23×30×50
26 40 = 2 3 × 3 0 × 5 1 40=2^3×3^0×5^1 40=23×30×51
27 200 = 2 3 × 3 0 × 5 2 200=2^3×3^0×5^2 200=23×30×52
28 1000 = 2 3 × 3 0 × 5 3 1000=2^3×3^0×5^3 1000=23×30×53
29 24 = 2 3 × 3 1 × 5 0 24=2^3×3^1×5^0 24=23×31×50
30 120 = 2 3 × 3 1 × 5 1 120=2^3×3^1×5^1 120=23×31×51
31 600 = 2 3 × 3 1 × 5 2 600=2^3×3^1×5^2 600=23×31×52
32 3000 = 2 3 × 3 1 × 5 3 3000=2^3×3^1×5^3 3000=23×31×53
33 16 = 2 4 × 3 0 × 5 0 16=2^4×3^0×5^0 16=24×30×50
34 80 = 2 4 × 3 0 × 5 1 80=2^4×3^0×5^1 80=24×30×51
35 400 = 2 4 × 3 0 × 5 2 400=2^4×3^0×5^2 400=24×30×52
36 2000 = 2 4 × 3 0 × 5 3 2000=2^4×3^0×5^3 2000=24×30×53
37 48 = 2 4 × 3 1 × 5 0 48=2^4×3^1×5^0 48=24×31×50
38 240 = 2 4 × 3 1 × 5 1 240=2^4×3^1×5^1 240=24×31×51
39 1200 = 2 4 × 3 1 × 5 2 1200=2^4×3^1×5^2 1200=24×31×52
40 6000 = 2 4 × 3 1 × 5 3 6000=2^4×3^1×5^3 6000=24×31×53
41 32 = 2 5 × 3 0 × 5 0 32=2^5×3^0×5^0 32=25×30×50
42 160 = 2 5 × 3 0 × 5 1 160=2^5×3^0×5^1 160=25×30×51
43 800 = 2 5 × 3 0 × 5 2 800=2^5×3^0×5^2 800=25×30×52
44 4000 = 2 5 × 3 0 × 5 3 4000=2^5×3^0×5^3 4000=25×30×53
45 96 = 2 5 × 3 1 × 5 0 96=2^5×3^1×5^0 96=25×31×50
46 480 = 2 5 × 3 1 × 5 1 480=2^5×3^1×5^1 480=25×31×51
47 2400 = 2 5 × 3 1 × 5 2 2400=2^5×3^1×5^2 2400=25×31×52
48 12000 = 2 5 × 3 1 × 5 3 12000=2^5×3^1×5^3 12000=25×31×53

2.3 整理分析

2 2 2相关的数有 2 0 2^0 20 2 1 2^1 21 2 2 2^2 22 2 3 2^3 23 2 4 2^4 24 2 5 2^5 25 共6个数
3 3 3相关的数有 3 0 3^0 30 3 1 3^1 31 共2个数
5 5 5相关的数有 5 0 5^0 50 5 1 5^1 51 5 2 5^2 52 5 3 5^3 53 共4个数。
将他们分类组合有6×2×4种可能,所以我们得出以下公式:

C = ∏ i = 1 n ( P n + 1 ) C=\displaystyle\prod_{i=1}^n(Pn+1) C=i=1n(Pn+1)
其中:
C C C 为所有因数个数;
P n P_n Pn 为分解质因数后质因数的指数;
n n n 为不同质因数的个数;
∏ \prod 为连乘或连积符号。


3. 公式求解

因数公式
C = ∏ i = 1 n ( P n + 1 ) C=\displaystyle\prod_{i=1}^n(Pn+1) C=i=1n(Pn+1)

分解因数:
12000 = 2 5 × 3 1 × 5 3 12000 = 2^5×3^1×5^3 12000=25×31×53
有3个不同的质因数,所以: n = 3 n=3 n=3
3个不同的质因数的指数分别是:
{ P 1 = 5  第 1 个质因数 2 的指数 P 2 = 1  第 2 个质因数 3 的指数 P 3 = 3  第 3 个质因数 5 的指数 \begin{cases} P_1=5 &\text{ } 第1个质因数2的指数 \\ P_2=1 &\text{ } 第2个质因数3的指数\\ P_3=3 &\text{ } 第3个质因数5的指数 \end{cases} P1=5P2=1P3=3 1个质因数2的指数 2个质因数3的指数 3个质因数5的指数

∴ C = ∏ i = 1 n ( P n + 1 ) = ( P 1 + 1 ) × ( P 2 + 1 ) × ( P 3 + 1 ) = ( 5 + 1 ) × ( 1 + 1 ) × ( 3 + 1 ) = 6 × 2 × 4 = 48 \begin{equation} \begin{split} \therefore C&=\displaystyle\prod_{i=1}^n(Pn+1)\\ &=(P_1+1)\times(P_2+1)\times(P_3+1)\\ &=(5+1)\times(1+1)\times(3+1)\\ &=6\times 2\times 4\\ &=48 \end{split} \end{equation} C=i=1n(Pn+1)=(P1+1)×(P2+1)×(P3+1)=(5+1)×(1+1)×(3+1)=6×2×4=48

4. 扩展

4.1 因式分解

分解质因数

/// <summary>
/// 分解质因数函数
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
static string DecomposingPrimeFactors(int number)
{
    int N = number;
    List<int> temps = new List<int>();
    int primeNumber = 2;
    DecomposingPrimeFactors(ref N, ref primeNumber, ref temps);
    return FormatPowerlaw(number,temps);
}
/// <summary>
/// 递归查找质因数
/// </summary>
/// <param name="N">传入需要分解的数</param>
/// <param name="primeNumber">传入第一个质数1</param>
/// <param name="temp">存储找到的质因数</param>
static void DecomposingPrimeFactors(ref int N, ref int primeNumber, ref List<int> temp)
{
    if (N <= 1)
    {
        return;
    }
    if (N % primeNumber == 0)
    {
        temp.Add(primeNumber);
        N = N / primeNumber;
        DecomposingPrimeFactors(ref N, ref primeNumber, ref temp);
    }
    else
    {
        primeNumber++;
        DecomposingPrimeFactors(ref N, ref primeNumber, ref temp);
    }
}

格式化输出结果

/// <summary>
/// 格式化质因数-乘式
/// N=a×a×a×a...×b×b×b×b×b...×c×c×c×c×c.....
/// </summary>
/// <param name="number"></param>
/// <param name="primeFactors"></param>
/// <returns></returns>
static string FormatMultiplicativeFormula(int number, List<int> primeFactors)
{
    return number + " = " + string.Join("×", primeFactors);
}
/// <summary>
/// 格式化质因数-指数式  
/// N=a^x1×b^x2×c^x3×.....
/// </summary>
/// <param name="number"></param>
/// <param name="primeFactors"></param>
/// <returns></returns>
static string FormatPowerlaw(int number, List<int> primeFactors)
{
    List<string> temps2 = new List<string>();
    foreach (var item in primeFactors.GroupBy(o => o))
    {
        int a = item.Key;
        int n = item.Count();
        temps2.Add($"{a}^{n}");
    }
    return number + " = " + string.Join("×", temps2);
}

Console.WriteLine($"{DecomposingPrimeFactors(12000)}");
12000 = 2^5×3^1×5^3

4.2 因数个数

枚举法

/// <summary>
/// 枚举法计算因数个数
/// </summary>
/// <param name="N"></param>
/// <returns></returns>
static double CalculateFactorCount(double N)
{
    int cnt=0;
    for(double i=1; i<=N;i+=1)
    {
        var v = Math.Pow(5, i);
        if(N % i == 0)
        {
            cnt++;
        }
    }
    return cnt;
}

公式法

/// <summary>
/// 使用因数公式计算个数
/// </summary>
/// <param name="N"></param>
/// <returns></returns>
static double CalculateFactorCount2(int number)
{
    int cnt = 1;
    int N = number;
    List<int> primeFactors = new List<int>();
    int primeNumber = 2;
    DecomposingPrimeFactors(ref N, ref primeNumber, ref primeFactors);
    foreach (var item in primeFactors.GroupBy(o => o))
    {
        int n = item.Count();
        cnt *=(n+1);
    }
    return cnt;
}
/// <summary>
/// 递归查找质因数
/// </summary>
/// <param name="N">传入需要分解的数</param>
/// <param name="primeNumber">传入第一个质数1</param>
/// <param name="temp">存储找到的质因数</param>
static void DecomposingPrimeFactors(ref int N, ref int primeNumber, ref List<int> temp)
{
    if (N <= 1)
    {
        return;
    }
    if (N % primeNumber == 0)
    {
        temp.Add(primeNumber);
        N = N / primeNumber;
        DecomposingPrimeFactors(ref N, ref primeNumber, ref temp);
    }
    else
    {
        primeNumber++;
        DecomposingPrimeFactors(ref N, ref primeNumber, ref temp);
    }
}

调用

    Console.WriteLine($"{DecomposingPrimeFactors(12000)}");
    var Count = CalculateFactorCount(12000);
    Console.WriteLine($"枚举法:12000的因数有{Count}个");
    var Count2 = CalculateFactorCount2(12000);
    Console.WriteLine($"公式法:12000的因数有{Count2}个");
    Console.ReadLine();
  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值