当前位置: 首页 > 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.gsyq.cn/news/34280.html

相关文章:

  • 线段树入门 - idle
  • vs2022(2026)离线安装失败的问题解决
  • 2025年10月临江鳝丝店推荐榜:五家口碑店铺深度对比与选择指南
  • 2025年10月临江鳝丝店评价榜:传统与创新菜系全面解析
  • 25岁零基础转行软件测试挑战高薪,真的可以么?
  • 提高组模拟赛 40 A. 子序列 题解
  • 详细介绍:Hadoop
  • ARC183 做题记
  • 《强化学习数学原理》学习笔记7——从贝尔曼最优方程得到最优策略 - 教程
  • 白忙活这么多年!早知道有这9款软件,我少熬好几个通宵!
  • Python电力负荷预测:LSTM、GRU、DeepAR、XGBoost、Stacking、ARIMA结合多源数据融合与SHAP可解释性的研究
  • 专题:2025年制造业数智化发展白皮书:数字化转型与智能制造|附130+份报告PDF、数据、绘图模板汇总下载
  • 大家好,我个人爱好开通了一个公众号!!!
  • 思源笔记多端同步方案:Docker MinIO + Siyuan-unlock
  • 团队博客 1plus:团队项目NABCD方案
  • P11453 [USACO24DEC] Deforestation S
  • 团队博客 1:团队项目核心信息
  • 2025年三聚氰胺饰面板源头厂家推荐榜前十强分析
  • 2025年国型钢厂家/工厂排名前十:江苏华力冷弯型钢领跑行业
  • Optuna AutoSampler 更新:让多目标和约束优化不再需要手动选算法
  • 2025年保安亭源头厂家推荐:合肥荣东智能环保科技的实力解析
  • 2025年保安亭源头厂家推荐排行榜:行业深度分析与选购指南
  • 提示词
  • 2025年反应釜厂家/反应釜工厂综合实力排名前十强
  • 解锁Github star 1600+ 的神秘工具,为什么Marsview 能让“后台系统开发”快到令人咋舌?
  • csp复习内容
  • 2025年国内换热器厂家/换热器工厂综合评测与行业洞察
  • 2025年10月国内锅炉工厂/厂家top10排名与工业应用深度解析
  • 2025年锅炉厂家/工厂排名前十:江苏永润锅炉领跑行业
  • 2025年闭式冷却塔生产厂家权威推荐榜单:不锈钢冷却塔/循环水冷却塔/工业冷却塔源头厂家精选