枚举法解决 数的分解

【算法】蛮力法/穷举法/枚举法 的基本问题分析 所有解空间:例如a,b,c取值范围都是 0~9,问abc组成的三位数的所有情况 所有路径:遍历图、遍历树 蛮力法的格式 蛮力法由循环和选择语句构成 使用循环,穷举所有情况 使用选择,判断当前情况是否成立 若成立,则得到问题的解 若不成立,则继续循环 循环 + 分支 for(){ for(){ // 获取X所有可能的情况 if(X满足条件){ printf("X"); } } } 蛮力法思想:穷举所有情况,找到符合条件的。 这也意味着,得能够穷举,因此问题规模不能太大。.. 阅读详情

在这里插入图片描述

package package2021_11;

public class Demo2 {
	public static void main(String[] args) {
		int n=2019;
		int res=0;
		for (int i = 1; i<=(n/3); i++) {
			if(!ifTrue(i)) 
				continue;
			for (int j = i+1; j<=((n-i)/2); j++) {
				if(!ifTrue(j)) 
					continue;
				 
				int k=n-i-j;
				if(!ifTrue(k)) 
					continue;
				if(k==i||k==j)
					continue;
				
//				System.out.println(i+"+"+j+"+"+k);
				res++;
			}
		}
		System.out.println(res);
		
	}
	//判断一个数字是不是包含2或者4,没有就返回true
	private static boolean ifTrue(int i) {
		//最大就是四位数
		//取第四位,如果有的话
		int temp=i/1000;
		if(temp==2||temp==4)
			return false;
		int a=i%1000;
		
		//取百位
		temp=a/100;
		if(temp==2||temp==4)
			return false;
		a=a%100;
		
		//取十位
		temp=a/10;
		if(temp==2||temp==4)
			return false;
		a=a%10;
		
		if(a==2||a==4)
			return false;
		
		return true;
	}
	

}

python经典百题之分解质因数 因此,我们可以先判断2是否是n的质因数,如果是,则将其保存下来,并将n除以2,继续进行同样的操作,直到n为奇数,然后从3开始,依次判断所有的奇数是否是n的质因数。然而,在实际运行中,试除法的效率并不如分解质因数法,因为试除法需要进行大量的除法运算,而分解质因数法只需要进行少数的除法运算,因此试除法的效率较低。思路:从2到n-1依次判断n是否能够被整除,如果能够被整除,则说明存在一个质因数,将其保存下来,并将n除以该质因数,然后继续对n进行同样的操作。重复上述步骤,直到n变为1,最终得到所有的质因数。 阅读详情

相关推荐

《算法零基础100讲》(第11讲) 因子数

一个奇妙的方法求解因子数

英雄哪里出来 2045

算法笔记方法论4 枚举法 详细笔记

枚举法,排列组合

qq_34534537的博客 4720

STM32H723串口接收全为0 & CAN错误中断问题

STM32H723串口接收全为0 和 叠加的导致CAN错误问题

weixin_38743772的博客 3916

枚举法详解

枚举法是利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此枚举法是通过牺牲时间来换取答案的全面性。 [1] 在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。例如:找出1到100之间的素数,需要将1到100之间的所有整数进行判断。枚举算法因为要列举问题的所有可能的答案,

Jerry_qbw的博客 3410

【 Git学习记录(三)】推荐四款主流的Git代码托管平台 —— GitHub、GitLab、Gitee、Coding

了解过Git之后,作为一个程序猿最基本的,你还需要了解目前主流的在线代码托管平台,并至少选择其中一款在平时开发中使用。这里特别介绍以下四款: 国外平台 GitHub —— 全球最流行的代码托管平台 GitLab —— 基于git的仓库管理程序 国内平台 Gitee —— 开源中国旗下的代码托管平台 Coding —— 支持社交元素的代码托管平台 一. GitHub 链接地址:https://github.com/ GitHub目前是全球最流行的代码托管平台(别称:全球最大的同性交友.

JZevin的博客 6092

对比实验系列:Efficientdet环境配置及训练个人数据集

可以通过下方链接下载Efficientdet源码。

Yayisheng的博客 4585

枚举算法

**算法定义** 枚举算法(Exhaustion Attack method,也称作“穷举法”)是指从可能的集合中一一列举出各个元素,用题目给定的约束条件判断那些是无用的,那些是有用的。能使命题成立者即为问题的解。枚举算法效率并不高,但是适合于一些没有明显规律可循的场合。能解决什么问题(应用场合)根据算法的定义,可以发现该算法有如下特点:(1)题目的答案是一个有穷的集合,即答案可以被一一列举出来;

yangqq2013的专栏 3029

AWVS安装与使用教程

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的自动化网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。WVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。

qq_59607911的博客 4098

LightOJ 1341 - Aladdin and the Flying Carpet(算术基本定理唯一分解定理)

Aladdin and the Flying Carpet 题解:首先必须知道一个数n=p1e1⋅p2e2⋅p3e3⋅...pkekn = p_1^{e_1}\cdot p_2^{e_2}\cdot p_3^{e_3}\cdot ...p_k^{e_k}n=p1e1​​⋅p2e2​​⋅p3e3​​⋅...pkek​​的因子个数ϕ(n)=∏i=1k(ei+1)\phi(n) = \prod_{i =...

Eternally831143的博客 317

最新 抖音 X-Gorgon 0408 和8408 设备注册协议

抖音app先是检测了你的手机cpu架构,是x86还是armeabi,通过cpu架构的不同来调用so内不同的xg方法,所以导致现在最新版抖音app的xg算法有0408和8408两种。两种都是最新版,因为我发现当我使用oppo手机安装最新版抖音抓包的xg是8408,而当我用小米或者华为安装最新版抖音,抓包以后发现xg是0408。抖音IOS XG84 设备注册激活协议代码片段。...

Q44804487的博客 1万+

RK3588部署YOLOv11与RKNN全流程教程

本文详细介绍了在RK3588开发板上部署YOLOv11目标检测模型的全流程。主要内容包括:PC端CUDA/cuDNN环境配置、Anaconda虚拟环境搭建、RKNN Toolkit2安装;YOLOv11模型从PyTorch到ONNX再到RKNN的格式转换;以及RK3588开发板的系统配置、RKNPU驱动安装和最终推理实现。教程提供了完整的代码示例,帮助开发者快速在边缘设备上实现高效的AI推理应用,涵盖从环境准备到实时检测的全套解决方案。

FJN110的博客 375

uva 294 - Divisors(枚举+计数)

题目连接:uva 294 - Divisors 题目大意:给出一个范围L~U,问说在该范围中因子数最多的数是多少。 解题思路:枚举L~U中的数,将数分解成质因子,利用乘法原理求总因子数。 #include #include #include int countFactor (int x) { int ans = 1; int m = sqrt(x+0.5);

不慌不忙、不急不躁 1278

想在 Visual Studio Code 里进行 ABAP 开发,需要安装的扩展列表

安装完毕后,我们可以将 SAP 系统配置为 Visual Studio Code 连接的远程文件系统。为了连接到 SAP 系统,需要启用 ABAP 开发工具 (ADT) ICF 节点,这与 SAP Hana Studio 等工具使用的服务相同。打开 SAP GUI 并连接到目标系统,运行事务 SICF,然后激活 ADT_SRV 服务,如下所示。这启用了允许代码编辑器和 IDE 连接到 SAP 系统的服务。

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

poj 2912 Rochambeau 解题思路

这道用到了并查集的算法,但很难直接地看出来准确的解法,需要不断的思考和挑战固有的思考方式才能找到冲突口。1.把scissors,rock,cloth分为三个集合,每一个回合都是把未分组的child分到某一个组里去,如果把一个已经分到scissors的child分到其它组,那此次操作就是非法的。2.枚举法,怎么确定哪一个child是gesture,因为N最大值为500,所以可以枚举每一种可能

muyangk的专栏 709

AgentScope Java 2.0 项目实战:使用AgentScope Builder 构建企业级多租户 AI Agent 平台

本文基于 AgentScope Builder 源码深度分析,系统讲解多租户 AI Agent 构建平台的完整开发流程。涵盖 Spring Boot 3.x + WebFlux 后端架构、React 18 + TypeScript 前端实现、HarnessAgent 运行时、CompositeFilesystem 多租户隔离、SSE 流式对话、6 种 IM 渠道接入(钉钉/飞书/企微/GitHub/GitLab)、Git 与 Nacos 技能市场、JWT 认证、Docker Sandbox 隔离等核心技术。

program哲学 724

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LeetCode_633平方数之和(双指针)

题目来源:LeetCode_633 今天这题很快就写出来了,因为今天在进入LeetCode时候不知道哪里瞟到了一眼双指针,看完题目以后就直接用双指针的想法,很快就做出来了。 左指针从0开始,右指针从Math.Sqrt©开始(注意要强制转换成int型) 对左指针和右指针的平方和与c进行比较,如果小于就令左指针+1,如果大于就令右指针-1,循环得到结果。 public boolean judgeSquareSum(int c) { int right =(int) Math.sqrt(c);

weixin_42219387的博客 133

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

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

例4.1 面包与客人问题

赫洛伊丝正在计划一次聚餐,她准备了84个小面包。虽然聚餐时她自己不吃,但她总是准备恰好足够数量的小面包,使每个客人分到的数量正好相同。她邀请的客人数量有哪些可能?

tang7mj的博客 460

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

hdu-4135(容斥原理)

Co-prime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6840    Accepted Submission(s): 2699   Problem Description Given a number N, you ar...

yu121380的博客 414

P7158 「dWoi R1」Password of Shady 题解及反思

摘要:本文讨论了一个关于n位数中包含偶数个数字k的动态规划问题。解题思路从枚举法转向动态规划,通过设计状态f[n](合法数)和g[n](非法数),建立了状态转移方程:f[i]=f[i-1]*9+g[i-1],g[i]=g[i-1]*9+f[i-1]。最终通过预处理f[]数组优化时间复杂度,并使用C语言输入输出避免超时。文章强调了动态规划的核心思想——将大问题分解为重叠子问题,并提供了AC代码实现。

qq_74304223的博客 514

从数列1,2,3,......,n中随意取出几个数,使其和等于m

问题描述:     输入两个整数n和m,从数列1,2,3,.......n中随意去几个数,使其和等于m,要求将其中所有可能的组合列出来。 解决思路:     这个问题其实是背包问题的变形,给出两种解决方法。     解法一:     用递归,效率可能低了点。假设问题的解为F(n,m),可分为两个子问题F(n-1,m-n)和F(n-1,m)。对于这两个问题递归求解,求解的过程中,如果找

qq1041256623的专栏 1969

LQ0005 数的分解【枚举+进制】

题目描述 把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法? 注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18 和1001+1000+18 被视为同一种。

海岛Blog 332

求一个数n的因子数和n^2因子数[数论]

正经目录求一个数的因子数一、求一个数n的因子数-暴力枚举法(Osqrt(n))二、n平方的因子数-数论三、HDU1299例题引入 求一个数的因子数 一、求一个数n的因子数-暴力枚举法(Osqrt(n)) 求n的所有因子数,我们只需要枚举到sqrt(n)即可**。唯一分解定理:任何一个正整数都可以素因式分解为 ==n = p1 ^e1^ * p2^e2^ * ...... * pr^er^; (其中pr是< n 的素数)== ==n的因子个数为:(e1+1)* (e2+1) * ……* (er+1)=

卖炫迈的小男孩的博客 1705

通过分解质因数求若干个数的最小公倍数

2,4,6,8,10,12,14 都能分解出质因数 2 ,最多能分解出 3 个(8 分解出 3 个 2),所以,最少公倍数一定包含 3 个质因数 2 (不可能小于 3 个,否则就不可能是 8 的倍数;3,6,9,12,15 都能分解出质因数 3,最多能分解出 2 个 3(9 分解出 2 个 3),所以,最少公倍数一定包含 2 个质因数 3。对每一个a[i]进行质因数分解,进而得到 c[i] c[j]其含义为对a[i]分解质因数,能分解出c[i] c[j] 个质因数b[j]。公式法中出现除的运算。

dazys的博客 1004

数的分解 第四题 枚举法 C语言

//把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都 //不含数字 2 和 4,一共有多少种不同的分解方法? //注意交换 3 个整数的顺序被视为同一种方法,例如 1000 + 1001 + 18 和 //1001 + 1000 + 18 被视为同一种。 #include<stdio.h> int f(int x) { int y; while (x > 0) { y = x % 10; if (y == 2 || y == 4) return .

weixin_66198012的博客 985
上一篇: Python基础入门
下一篇: csp非零段划分(结尾有不超时解题,直接跳转看)
@@老胡
博客等级 码龄7年 291粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值