整数因子分解问题(分治)

整数因子分解问题(递归分治法、动态规划) Description 大于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 输入数据只有一行,有1个正整数n (1≤n≤2000000000)。 Output 将计算出的不同的分解式数输出。 Sample 阅读详情

问题描述:将一个整数分解成整数因子相乘,共有多少种不同的分解式?

问题分析:这个问题其实很简单,将一个数n从2到它本身依次求余,如果发现n求余后为0,证明这个被求余的数i是这个整数的因子,那么我们对n/i再进行递归,直到n/i变为1停止递归。

分析完毕,代码如下:

#include <stdio.h>

int count = 0 ;

void calculate(int n){
	
	if( n == 1 ){
		count++ ;
	}

	int i = 2 ;
	while ( i<=n ){

		if( n%i == 0) {
			calculate( n/i ) ;
		}

		i++ ;
	}
}

int main()
{
	int n ;

	printf("请输入一个正整数:") ;
	scanf("%d", &n) ;

	calculate( n ) ;
	printf("式子个数:%d\n", count) ;

	return 0 ;
}

扩展:怎样输出它的各表达式?

问题分析:每层递归获得一个因子,我们可以用一个栈存储暂时的因子,当因子全部找到时输出栈元素。当递归结束时(标志着整数已经被分解到1了,分解式已经输出了),这时我们可以移除栈顶一个元素,向下继续寻找其他因子。

代码如下:

#include <stdio.h>
#include <stdlib.h>

#define TRUE  1
#define FLASE 0

int count = 0 ;
//栈的结点类型
typedef struct Node
{
	int data;
	struct Node *next;
因式分解 整数因子分解问题 因数分解(递推 递归 分治) SDUT OJ 因式分解 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 将大于1的自然数N进行因式分解,满足N=a1*a2*a3…*am。 编一程序,对任意的自然数N(1&lt; N&lt;=2,000,000,000),求N的所有形式不同的因式分解方案总数。如N=12,共有8种分解方案,他... 阅读详情

相关推荐

算法竞赛中的数学武器:如何用‘整数分解+分治求等比和’通解POJ 1845这类因子和问题

本文深入解析了算法竞赛中POJ 1845 Sumdiv这类因子和问题的通用解法,结合整数唯一分解定理和分治法求等比数列和,提供高效C++实现方案。通过质因数分解和分治策略,将O(n)复杂度优化至O(log n),适用于大指数模运算场景,是竞赛选手必备的数学武器。

weixin_30835649的博客 654

算法复习——分治法重点问题

一、众数问题 发过的8 giggl 问题描述:   给定含有n 个元素的多重集合S,每个元素在S 中出现的次数称为该元素的重数。多重集S 中重数最大的元素称为众数。   例如,S={1,2,2,2,3,5}。多重集S 的众数是2,其重数为3。 编程任务:   对于给定的由n 个自然数组成的多重集S,编程计算S 的众数及其重数。 数据输入:   输入数据由文件名为input.txt 的文本文件提供。文件的第1 行多重集S 中元素个数n;接下来的n 行中,每行有一个自然数。 结果输出:   程序运行结束时,将计

m0_51719566的博客 1381

整数因子分解问题(分治法\C++实现)

Description 大于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 第一行一个正整数n (1<=n1时,对每个因子i,计算solve(n/i)。

5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型

本文提供了一份快速部署指南,教你如何在5分钟内利用FunASR工具包在本地电脑上启动达摩院Paraformer语音识别模型。Paraformer作为一款非自回归端到端模型,以其推理速度快、识别精度高的特点,结合FunASR的一键式模型加载和统一API,让开发者能轻松构建本地语音识别系统,极大降低了前沿AI技术的应用门槛。

q9w8e7r6t5的博客 605

AST实战:解密Akamai混淆JS代码的完整流程

本文详细解析了如何使用AST技术解密Akamai混淆的JS代码,包括定位关键代码、AST解混淆实战步骤及常见问题解决方案。通过实际案例演示了从混淆代码到清晰逻辑的完整处理流程,并提供了工具推荐和法律合规建议,帮助开发者有效应对反爬虫技术。

weixin_33725722的博客 322

300个fpga练手项目推荐

• 按键设置BPM,LED和蜂鸣器同步打拍(支持4/4、3/4拍)• 例:先实现DDR3控制器(基础),再构建视频处理流水线(集成)◦ 驱动小型e-Paper显示日期/时间(SPI接口,静态刷新)◦ 音频输入经FFT后,用LED柱状显示频率能量(8频段简化)◦ 通过HC-05模块接收手机指令,控制电机方向(前进/后退)• 随机点亮LED,用按钮响应,数码管显示反应时间(毫秒级)• 8个LED旋转闪烁,按钮停止后显示中奖编号(带减速动画)• 用4方向按键输入手势(如→→←↑),正确后点亮绿色LED。

qq_62784677的博客 7643

vue3 web项目引入高拍仪

高拍仪的引入步骤就两步,安装SDK,然后根据官网的api进行开发。根据自己需要的功能,请求对应的接口。

qq_42480170的博客 4116

杰理JL7033C芯片运行SoundFont音色库教程

本教程介绍如何在杰理JL7033C芯片上移植TinySoundFont音色库,实现MIDI播放功能。关键步骤包括:获取TinySoundFont开源代码,创建音色库声音播放数据流,封装核心功能文件。硬件需配备外部PSRAM和NOR FLASH存储音色库,软件使用杰理SDK和工具链。移植后系统可支持40个voice,满足MIDI播放和电子琴演奏需求。教程详细说明了代码移植过程,包括音色库文件处理、内存配置和音频流水线设置。

qq_42014563的博客 611

SAP CBC 集成质量系统初始化接入实战指南

摘要 本文探讨了SAP S/4HANA Cloud Public Edition项目中质量系统的初始接入过程。质量系统并非开箱即用,而是需要经过SAP Central Business Configuration(CBC)的Scope and Organizational Structure阶段部署后才能具备完整功能。文章重点分析了几个关键环节:CBC里程碑确认的时机选择、Identity Authentication的初始管理员设置、Business Role Template的创建规范等。实施过程中需特

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1408

Python 爬虫实战:爬取电商平台商品信息(价格 / 销量 / 评价)

摘要:本文详细介绍基于Python的电商商品信息爬取技术方案,以京东商品详情页为例,对比分析静态(BeautifulSoup)和动态(Selenium)两种爬取方式的实现逻辑。静态爬取适合获取基础信息,而动态爬取可解决JS渲染数据的获取问题。文章包含完整的代码实现、反爬规避策略及数据存储方案,涵盖商品名称、价格、销量、评价等核心数据提取。同时强调爬虫的合规使用,提供扩展方向建议,为电商数据采集提供实用技术参考。

2503_91057718的博客 2023

Autosar诊断实战系列05-Dcm之0x27加解密服务配置开发详解

UDS 0x27服务实战开发介绍,对解锁尝试次数及delay时间进一步解释。

initiallizer的博客 1993

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 全排列问题
下一篇: 最小m段和问题(动态规划)
dms2017
博客等级 码龄8年 51粉丝 54原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值