【分治法】整数因子分解问题

简介: 【分治法】整数因子分解问题

 问题描述:

问题描述:

 大于1 的正整数n 可以分解为:n=x1*x2*…*xm。

例如,当n=12 时,共有8 种不同的分解式:

12=12;

12=6*2;

12=4*3;

12=3*4;

12=3*2*2;

12=2*6;

12=2*3*2;

12=2*2*3 。

编程任务:

  对于给定的正整数n,编程计算n 共有多少种不同的分解式。

数据输入:

  由文件input.txt 给出输入数据。第一行有1 个正整数n (1≤n≤2000000000)。

结果输出:

将计算出的不同的分解式数输出到文件output.txt 。

输入文件示例          输出文件示例

input.txt            output.txt

 12                      8

代码如下:

#include <iostream>
using namespace std;
int factor(int n){
    int sum=0;
    for(int i=n;i>1;i--){
        if(n%i==0){//i是n的因子 
            int j=n/i;
            if(factor(j)==0) sum++;
            else{
                sum=sum+factor(j);
            }
        }
    }
    return sum;
}
int main()
{
    int n;cin>>n;
    cout<<factor(n)<<endl;
    return 0;
}

image.gif


目录
相关文章
|
8月前
|
算法
简记二分算法模板与代码案例:整数二分和浮点数二分
本文介绍了两种算法模板,分别是整数二分和浮点数二分。
69 0
|
8月前
|
算法 测试技术 C#
【数学】【数论】【最大公约数】1819. 序列中不同最大公约数的数目
【数学】【数论】【最大公约数】1819. 序列中不同最大公约数的数目
|
机器学习/深度学习 算法
算法分析 | 第三套(渐近符号)
算法分析 | 第三套(渐近符号)
110 0
|
机器学习/深度学习 算法
【贪心算法】最大整数
【贪心算法】最大整数
126 0
|
算法 C++
基础算法-整数二分
二分法的基本思想比较简单,是用来在数组当中查找特定元素的算法。 二分可以分为整数二分和浮点二分,本文主要介绍整数二分。
074.K阶斐波那契序列
074.K阶斐波那契序列
69 0
算法零基础——大数四则运算
算法零基础——大数四则运算
算法零基础——大数四则运算
Algorithm:C++语言实现之分治法相关问题(给定实数x和整数n,分治法求xn)
Algorithm:C++语言实现之分治法相关问题(给定实数x和整数n,分治法求xn)
Algorithm:C++语言实现之分治法相关问题(给定实数x和整数n,分治法求xn)