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

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

 问题描述:

问题描述:

 大于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


目录
相关文章
|
3月前
|
算法 测试技术 C++
【动态规划】【数学】【C++算法】1449. 数位成本和为目标值的最大数字
【动态规划】【数学】【C++算法】1449. 数位成本和为目标值的最大数字
|
3月前
|
存储 机器学习/深度学习 人工智能
【算法基础】基础算法(三)--(双指针算法、位运算、离散化、区间合并)
【算法基础】基础算法(三)--(双指针算法、位运算、离散化、区间合并)
|
3月前
|
算法 测试技术 C#
【状态压缩 动态规划 数论】1799. N 次操作后的最大分数和
【状态压缩 动态规划 数论】1799. N 次操作后的最大分数和
|
8月前
|
机器学习/深度学习 算法
算法分析 | 第三套(渐近符号)
算法分析 | 第三套(渐近符号)
52 0
|
算法
基础算法(大数操作 前缀和 差分)
基础算法(大数操作 前缀和 差分)
60 0
|
算法 内存技术
求组合数三种算法
求组合数三种算法
57 0
|
Python
深入理解动态规划算法 | 凑整数
深入理解动态规划算法 | 凑整数
106 0
|
算法 C++
基础算法-整数二分
二分法的基本思想比较简单,是用来在数组当中查找特定元素的算法。 二分可以分为整数二分和浮点二分,本文主要介绍整数二分。
|
算法 C++
容斥原理算法的实现
容斥原理算法的实现
容斥原理算法的实现