第二届蓝桥杯-最小公倍数问题

2023-11-17

题目

题目链接

题解

数学 + 高精度。


如果直接按照计算多个数连续计算最小公倍数,那么显然要经过高精度乘法、高精度除法,两个高精度过于麻烦了。

换个思路,我们将每个数都分解质因数,全部数的最小公倍数必然由分解得到的质因数相乘得到,而且构成最小公倍数的每种质因子的个数等于某个数分解得到该质因子最多的个数,举个例子:n=61,2,3,4,5,6分解质因子得到{1}, {2}, {3}, {2,2}, {5}, {2,3},那么构成这些数的最小公倍数的质因子2的个数应该为2,因为4存在两个质因子2,提供的2最多,我们为了保证最小公倍数能被4整除,所以最小公倍数的质因子2的数量就不能少于4的质因子数量,但是质因子3就只用取1个,因为3只有一个质因子36也只有一个质因子3。这就是为什么每个质因子都要取每个数数量最多的质因子个数的原因。

代码

#include<bits/stdc++.h>
using namespace std;
int c[1000];

string mul (string s, int b) {
	string res = "";
	int m = s.size();
	reverse (s.begin (), s.end ());
	memset (c, 0, sizeof c);
	
	for (int i = 0;i < m;i ++) {
		c[i] += (s[i] - '0') * b;
		c[i+1] += c[i] / 10;
		c[i] %= 10;
	}

	while (c[m]) c[m+1] += c[m] / 10, c[m] %= 10, m ++;
	
	for (int i = m-1;i >= 0;i --)
	res += c[i] + '0';
	
	return res;
}

int n;
int cnt[110], res[110];
string ans = "1";

int main()
{
	cin >> n;
	for (int i = 2;i <= n;i ++) {
		int x = i;
		memset (cnt, 0, sizeof cnt); // cnt 统计每个数的每种质因子个数 
		for (int j = 2;j <= x/j;j ++) {
			while (x % j == 0) {
				x /= j;
				cnt[j] ++;
			}
			res[j] = max (res[j], cnt[j]); // res 记录全部数对于每种质因子的最大贡献数量 
		}
		if (x > 1) res[x] = max (res[x], 1); // 不要忘记 
	} 
	
	for (int i = 2;i <= n;i ++) 
		for (int j = 0;j < res[i];j ++)
			ans = mul (ans, i); // 高精度 * 低精度 

	cout << ans << endl; 

	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第二届蓝桥杯-最小公倍数问题 的相关文章

  • 是否可以根据 QSlider 的位置来改变其手柄的颜色?

    我非常清楚如何通过样式表自定义 QSlider 但我想知道是否可以执行以下操作 我希望滑块的手柄从蓝色变为黄色 当设置在左侧时 它是蓝色的 设置在左侧时 它是蓝色的 当你将它向右移动时 它会出现从蓝色到黄色的渐变 如果可以通过样式表 如何实
  • 数字或货币的字符串格式?

    我需要为每个千给出逗号 所以我用了DataFormatString 0 它运行良好 但当值为0 它正在显示 00 我只想只显示 0 我们怎样才能做到这一点 DataFormatString 0 C0 这将格式化为小数点后 0 位的货币 Da
  • 异步提交或回滚事务范围

    正如许多人所知 TransactionScope当async await Net 中引入了模式 如果我们尝试使用一些它们就会损坏await在事务范围内调用 现在这个问题已经解决了 感谢范围构造函数选项 a 17527759 1178314
  • WebBrowser Control 导致整个应用程序变得无响应

    我有一个带有嵌入式 Web 浏览器的 C NET 3 5 应用程序 浏览器被设计为指向远程站点 而不是本地站点 一切工作正常 但是当页面响应缓慢时 这会导致我的整个应用程序变得无响应 直到加载页面 我不介意浏览器在执行任务时没有响应 但应用
  • Java 相当于 C# 的 async/await?

    我是一名普通的 C 开发人员 但偶尔也会使用 Java 开发应用程序 我想知道 Java 中是否有相当于 C async await 的东西 简单来说 java 相当于 async Task
  • 如何将 int.TryParse 与可为空的 int 一起使用? [复制]

    这个问题在这里已经有答案了 我正在尝试使用 TryParse 来查找字符串值是否为整数 如果该值为整数 则跳过 foreach 循环 这是我的代码 string strValue 42 if int TryParse trim strVal
  • 计算序列而无法存储值?

    问题陈述 here http www spoj com problems EC SER 令 S 为无限整数序列 S0 a S1 b Si Si 2 Si 1 对于所有 i gt 2 你有两个整数 a 和 b 您必须回答有关序列中第 n 个元
  • 如何使用 LINQ 对列表的列表进行分组(例如:List>)

    我知道我可以使用一些 for 循环轻松地做到这一点 但想看看是否有一种方法可以使用流畅的 LINQ 来做到这一点 我试图找出每个子列表中有多少个 我在看Enumerable SequenceEqual http msdn microsoft
  • MPI_Gather 分段错误

    我有这个并行高斯消除代码 调用以下任一方法时会发生分段错误MPI Gather函数调用 我知道如果没有为任一缓冲区正确分配内存 可能会出现此类错误 但我看不出内存管理代码有什么问题 有人可以帮忙吗 Thanks Notes 该程序从一个 t
  • Visual Studio:同时调试多个项目?

    是否可以在 Visual Studio 中同时调试多个项目 我知道您可以从解决方案属性中选择多个启动项目 但是断点是如何处理的 如果两个项目使用同一个类 它的两个不同实例 并且我因其中的断点而停止 那么它只会阻止一个程序还是同时阻止两个程序
  • 是否可以将 CMFCToolBar 添加到对话框中?

    我刚刚尝试了将 CToolbar 添加到新 CMFCToolBar 上的对话框的标准方法 但这不起作用 在我深入研究新的实现之前 我想知道它是否真的可行 我不确定你所说的 标准方式 是什么意思 但你当然可以以编程方式做到这一点 In MyD
  • Web API 2 中的方法名称约定 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否有 Web API 2 中使用的约定的列表 以这两种方法为例 两者都可以工作 但都没有用属性来装饰 IHttpActionResu
  • 确定所选电子邮件是来自收件箱还是已发送邮件

    我正在编程Outlook 插件并需要确定所选电子邮件是否来自Inbox or Sent Items这样当我将电子邮件保存到数据库中时 我可以使用文件夹 收件箱 或 已发送 来标记电子邮件 我知道我可以将文件夹名称与 收件箱 或 已发送邮件
  • 找到两个值的平均值的正确方法是什么?

    我最近了解到整数溢出是 C 中的未定义行为 附带问题 C 中也是 UB 吗 在 C 编程中 您通常需要求两个值的平均值a and b 然而做 a b 2可能会导致溢出和未定义的行为 所以我的问题是 找到两个值的平均值的正确方法是什么a an
  • 黑屏只是闪烁一会儿

    在我的 Windows Phone 8 应用程序中 我有一个搜索页面 其中有一个文本框供用户输入搜索关键字 输入默认SIP键盘的 Enter 键时将调用搜索 搜索结果显示在另一个页面中 为了在导航到结果页面之前隐藏键盘 我使用 this F
  • 如果未先将 lambda 表达式强制转换为委托或表达式树类型,则无法将其用作动态分派操作的参数

    我正在使用 NET4 5 和 VS2013 我有这个查询dynamic来自数据库的结果 dynamic topAgents this dataContext Sql select t create user id as User sum t
  • 是否可以在 ASP.NET Web API 和 SPA 中使用基于 cookie 的身份验证?

    我想创建基于 angularjs 前端和 ASP NET Web API 的 Web 应用程序 我需要创建安全 api 但我无法在将实施此 Web 应用程序的公司服务器上使用基于令牌的身份验证 是否可以对 SPA 和 ASP NET Web
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • (int *)0 是空指针吗?

    这可以被认为是一个扩展这个问题 https stackoverflow com q 16563114 912144 我只对 C 感兴趣 但添加 C 来完成扩展 C11 标准 6 3 2 3 3 规定 值为 0 的整数常量表达式 或此类表达式
  • printf 右对齐括号内的数字

    我正在编写一个程序 显示数组中的所有信息 它必须以括号中的数组索引开头 例如 2 并且它们必须彼此正确对齐 如果只是数字 我知道你可以这样做 printf 10d index 但是用括号括起来会得到以下输出 1 2 10 11 当我真正希望

随机推荐

  • 前端面试总结

    前端面试 一 计算机网络 1 HTTP和HTTPS HTTP的基本概念 http 是互联网上应用最为广泛的一种网络协议 是一个客户端和服务器端请求和应答的标准 TCP 用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议 HTTP工
  • java 盲水印实现比其他版本的速度更快 !!!

    该盲水印版本速度上更快 参照了c的底层实现改编的 java 语法 结合先人的经验得以完成 希望能帮助有困惑的朋友 实测代码有效 下面就是我的代码实现 首先是盲水印工具类 导入类 import org bytedeco javacpp Loa
  • C++编译器为类自动生成的函数

    我们可以构建一个空类 class Empty 尽管没有定义任何函数 但我们可以通过以下方式使用这个类 Empty e1 Empty e2 e1 e2 e1 因为当编译器发现你用上述方式使用这个类而却在类声明中没有定义一般构造函数 非复制构造
  • Python Web系列学习1

    1 全栈网络框架 除了封装网络和线程操作 还提供HTTP栈 数据库读写管理 HTML模板引擎等一系列功能的网络框架 Django Flask Tornado是全栈网络框架的典型标杆 Twisted更专注于网络底层的高性能封装而不提供HTML
  • 服务器2008r2启动修复,Windows Server 2008 R2原生启动试用

    IT168 特别策划 6000名IT精英齐聚一堂 与来自微软产品核心研发团队及各个领域数百位顶级专家面对面交流 Tech Ed 2009盛典召开在即 IT168带您一起体验丰富多彩的活动和内容安排 更加深入 专注的互动讨论 IT168 专稿
  • 文件恢复原理&&Linux文件恢复工具-foremost&extundelete

    文件恢复的原理 首先简单介绍一下 Linux 文件系统的最基本单元inode inode 译成中文就是索引节点 每个存储设备 例如硬盘 或存储设备的分区被格式化为文件系统后 应该有两部份 一部份是 inode 另一部份是 block blo
  • FPGA设计篇之流水线思想

    FPGA设计篇之流水线思想 一 写在前面 二 正文开始 2 1举个栗子 2 2 1情况一 组合逻辑 2 1 2情况二 流水线设计 2 1 4 小总结 2 2举第二个栗子 写在最后 一 写在前面 流水线 大家好 我是富土康三号流水线的张全蛋
  • 常见计算机文件类型,关于文件类型电脑文件常用的有哪些类型?对应的软件有什么?rmvb 爱问知识人...

    正确的安装步骤 首先进入BIOS设置光驱优先 1 首先按Del键进入BIOS 2 通过键盘上的方向键选中Advanced BIOS Features 3 回车进入BIOS设置界面 4 用方向键选中First Boot Device或 1st
  • STM32CubeMx配置HAL库流水灯

    STM32CubeMx配置HAL库流水灯 文章目录 STM32CubeMx配置HAL库流水灯 RCC Clock Configuration GPIO Project Manager GENERATE CODE 程序编写 注意事项 RCC
  • Offer差点无缘?HUAWEI 4面技术5面HR,踩线挺过!

    大厂面试真题向来都是各大求职者的最佳练兵场 而今天小编带来的便是 HUAWEI 面经 这是一次真实的面试经历 虽然不是我自己亲身经历但是听当事人叙述后便会深有同感 因为我朋友差点就与offer擦肩而过了 总共4面技术5面HR 真的好艰难 为
  • laravel cookie的使用方法

    1 Cookie make Cookie forever Cookie get 的使用方法 Route get cookieset function foreverCookie Cookie forever forever Success
  • 线程的五大状态

    线程从创建 运行到结束总是处于下面五个状态之一 新建状态 就绪状态 运行状态 阻塞状态及死亡状态 http www blogjava net images blogjava net santicom 360 E6 88 AA E5 9B B
  • 【论文笔记】AudioGPT: Understanding and Generating Speech,Music, Sound, and Talking Head

    一 简介 核心问题 目前llm无法解决复杂的音频信息或进行口语对话 数据和计算资源制约了高方向的发展 本文 1 使用chatgpt作为接口 2 没有训练口语模型 而是将LLM与语音对话的输入 输出接口 ASR TTS 连接起来 AudioG
  • MATLAB怎么画时间序列的自相关函数和偏自相关函数图

    autocorr Series 画出自相关图 图中上下两条横线分别表示自相关系数的上下界 超出边界的部分表示存在相关关系 a b autocorr Series a 为各阶的相关系数 b 为滞后阶数 parcorr Series 画出偏自相
  • 服务器SSL不安全漏洞修复方案

    关于SSL POODLE漏洞 POODLE Padding Oracle On Downgraded Legacy Encryption 是最新安全漏洞 CVE 2014 3566 的代号 俗称 贵宾犬 漏洞 此漏洞是针对SSL3 0中CB
  • 风险平价组合(risk parity)理论与实践

    本文介绍了风险平价组合的理论与实践 后续文章将对risk parity组合进行更深入探讨以及引入预期收益后的资产配置实战策略 感兴趣的朋友可以直接前往BigQuant人工智能量化投资平台克隆代码进行复现 前言 资产配置是个很广泛的话题 在投
  • 【ChatGPT+Python】Landsat卫星图像黑边去云及旋转校正

    引言 下图是一张Landsat图像的示例 右图 我们可以明显地看到四周的黑边和倾斜的角度 这是由于卫星传感器成像导致的 一般情况下 我们是不需要去除黑边和选择的 因为这样做之后投影信息和位置信息就不正确了 但对于做深度学习图像处理任务的同学
  • “宽度确定高度等比例的图片”和“高度确定宽度等比例的图片”有什么不同

    文章目录 1 宽度确定高度等比例的图片 和 高度确定宽度等比例的图片 有什么不同 2 附 1 宽度确定高度等比例的图片 和 高度确定宽度等比例的图片 有什么不同 宽度确定高度等比例的图片 和 高度确定宽度等比例的图片 都是指图片的宽度和高度
  • stm32与esp8266连接,将数据上传到OneNet(MQTT)

    文章目录 前言 一 所用器件 1 STM32F103C8T6 2 转串口模块 CH340 3 esp8266 01s 4 气体检测模块 MQ 二 代码分析 1 接线 2 代码 三 OneNet创建一个设备 1 百度搜索onenet 2 进入
  • 第二届蓝桥杯-最小公倍数问题

    题目 题目链接 题解 数学 高精度 如果直接按照计算多个数连续计算最小公倍数 那么显然要经过高精度乘法 高精度除法 两个高精度过于麻烦了 换个思路 我们将每个数都分解质因数 全部数的最小公倍数必然由分解得到的质因数相乘得到 而且构成最小公倍