当前位置: 首页 > news >正文

2025.10.29__jyu每日一题题解

完全平方数

题目大意

给定一个正整数 \(n\),找到最小的正整数 x,使得它们的乘积是一个完全平方数。

思路

1. 定理

算术基本定理指出:任何大于1的自然数 \(N\),要么本身是素数,要么可以唯一地分解为有限个素数的乘积。具体表述为:
$ N = p_1^{a_1} p_2^{a_2} \cdots p_k^{a_k}$
其中 \(( p_1 < p_2 < \cdots < p_k )\) 为素数,\(a_i\) 为正整数,且这种分解方式在不考虑素数排列顺序时是唯一的。
那么我们可以将 \(n\) 分解成一堆素数的乘积。
如果我们分解完全平方数,就会发现它分解出来的素数的 \(a_i\)都为偶数。

证明也很简单:
一个完全平方数必然可以由 sqrt(n) * sqrt(n) 得到。
每个 sqrt(n) 可以根据算数基本定理分解成若当素数的乘积。
然后两个 sqrt(n) 相乘去得到 n,那么相当于每一个素数的指数乘2,那么得到的 n 根据算数基本定理分解出来的若当素数的指数必然是偶数。

那么如果我们想让 \(n\) 乘上某一个数 \(x\)之后变成完全平方数,相当于是让它分解出来的素数的指数全都变为偶数。
那么我们就分解 \(n\), 如果某一个素数的指数是奇数,那么说明我们要补上这个素数,那么答案的x就要可以分解出一个这个素数。
依次检验即可。

代码

点击查看代码 void solve(){cin >> n;int x = 1;for(int i = 2; i <= n / i; i ++){if(n % i == 0){int cnt = 0;while(n % i == 0) n /= i, cnt ++;if(cnt % 2 == 1) x *= i;}}if(n != 1) x *= n;cout << x << endl; } ``` <->//代码 ```
http://www.fuzeviewer.com/news/2583/

相关文章:

  • 以《出师表》作为例子,对比通用分块和父子分块的区别
  • 2025年10月临江鳝丝店推荐:五家口碑店铺综合对比排行
  • 【题解】Educational Codeforces Round 105E
  • 低代码只能做简单表单?复杂业务场景的适配方案
  • 2025青科会启幕,网易伏羲携游戏AI前沿实践共话未来
  • 专题:2025年制造业数智化发展白皮书:数字化转型与智能制造|附130+份报告PDF、数据、绘图模板汇总下载
  • 思源笔记多端同步方案:Docker MinIO + Siyuan-unlock
  • python设置永久的国内镜像源
  • [SKILL] 常用语句
  • 项目构建优化:git
  • 整理:决策单调性
  • 2025年10月垃圾分类房品牌订制厂家深度评测与推荐:揭秘顶级厂家的优势与选购技巧
  • 2025年反应釜厂家/反应釜工厂综合实力排名前十强
  • 2025年10月中国保安亭厂家权威口碑排行榜单:合肥荣东智能环保科技有限公司
  • 2025年国内换热器厂家/换热器工厂综合评测与行业洞察
  • EMC of SMPS 开关电源EMC基础
  • 抖音防封搭建方案,青否数字人提供全套的防封方案,能够进行稳定直播带货!
  • Halcon算法——Hough变换
  • 开了 8 年母婴店,靠微擎守住了 20000 会员的信任,再也不怕数据泄露
  • 基于 Word 模板占位符的动态文档生成实践(源码+保姆版)
  • 红外热像仪 热成像相机 即插即用多场景适配
  • OSI中七层模型
  • Awesome GitHub Copilot:超级定制化AI编程助手工具集
  • 详细介绍:【网络通讯安全认证的理解:从密钥签名、数字证书到 HTTPS/TLS 流程】
  • vxe-table 树形表格显示连接线的方式
  • 前后端不分离的springboot应用,静态文件修改了不更新的问题
  • 2025 年聚脲厂家最新推荐榜,技术实力与市场口碑深度解析,精选行业优质企业聚脲防腐/单组分双组分聚脲/MUL 聚脲/聚脲防水公司推荐
  • 2025 年红外测温仪厂家最新推荐榜,技术实力与市场口碑深度解析比色/感应加热/高性价比/单晶炉红外测温仪公司推荐
  • 2025上海单位/小区/商场/办公楼/工厂/住宅/保洁公司服务推荐榜:臣峰环境以场景化定制能力引领行业新发展
  • 可传参数的3Decharts-gl省市级地图实现(点击具体的省份及可下钻到市级地图)--详细版本