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

洛谷 P1075:[NOIP 2012 普及组 T1] 质因数分解 ← 整数唯一分解定理

【题目来源】
https://www.luogu.com.cn/problem/P1075

【题目描述】
已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。

【输入格式】
输入一个正整数 n。

【输出格式】
输出一个正整数 p,即较大的那个质数。

【输入样例】
21

【输出样例】
7

【数据范围】
1≤n≤2×10^9

【算法分析】
● 整数唯一分解定理(算术基本定理)
任何一个大于 1 的正整数 n,都可以唯一地表示成有限个质数的乘积形式:n=p₁ᵏ¹×p₂ᵏ²×...×pₘᵏᵐ,其中 p₁<p₂<...<pₘ 是质数,k₁,k₂,....,kₘ 是正整数.且这种分解方式在不考虑顺序的情况下是唯一的。

● 欧拉函数性质‌
欧拉函数 φ(n) 是数论中的重要函数,用于计算 1~n 中与 n 互质的正整数的个数。特别地,当 n=1 时,φ(1)=1。
(1)若 p 是质数,φ(p)=p-1。
例如,φ(5)‌=5-1=4(表示 1~5 中与 5 互质的正整数有 1,2,3,4 等 4 个)。
(2)若 n=pᵏ,φ(pᵏ)=pᵏ-pᵏ⁻¹。
例如,φ(8)‌=2³-2²=8-4=4(表示 1~8 中与 8 互质的正整数有 1,3,5,7 等 4 个)
(3)积性函数:当 a,b 互质时,φ(ab)=φ(a)φ(b)。
例如,φ(10)=φ(2)×φ(5)=1×4=4(表示 1~10 中与 10 互质的正整数有 1,3,7,9 等 4 个)
(4)通用计算公式:φ(n)=n×(1-1/p₁)×(1-1/p₂)×...×(1-1/pₘ)。其中,p₁,…,pₘ,是 n 的所有质因数。
例如, 由于 18=2×3²,所以 φ(18)=18×(1-1/2)×(1-1/3)=6(表示 1~18 中与 18 互质的正整数有 1,5,7,11,13,17 等 6 个)。

● 基于整数唯一分解定理,求整数 n 的不同质因子的个数:https://blog.csdn.net/hnjzsyjyj/article/details/158044746

#include <bits/stdc++.h>
using namespace std;typedef long long LL;void cal(LL n) {LL cnt=0;for(LL i=2; i*i<=n; i++) {if(n%i==0) {cnt++;while(n%i==0) n/=i;}}if(n>1) cnt++;cout<<cnt;
}int main() {LL x;cin>>x;cal(x);return 0;
}/*
in:18
out:2
*/

● 利用基于整数唯一分解定理的欧拉函数,求 1~n 中与 n 互质的正整数的个数:https://blog.csdn.net/hnjzsyjyj/article/details/148176615

#include <bits/stdc++.h>
using namespace std;typedef long long LL;void cal(LL n) {LL cnt=n;for(LL i=2; i*i<=n; i++) {if(n%i==0) {cnt=cnt/i*(i-1);while(n%i==0) n/=i;}}if(n>1) cnt=cnt/n*(n-1);cout<<cnt;
}int main() {LL x;cin>>x;cal(x);return 0;
}/*
in:18
out:6
*/

【算法代码】

#include <bits/stdc++.h>
using namespace std;int main() {int n;cin>>n;for(int i=2; i*i<=n; i++) {if(n%i==0) {cout<<n/i;break;}}return 0;
}/*
in:21
out:7
*/



【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/158044746
https://blog.csdn.net/qq_51453931/article/details/125364433
https://blog.csdn.net/hnjzsyjyj/article/details/148176615

 

http://www.jsqmd.com/news/382856/

相关文章:

  • PostgreSQL JOIN:深入理解与高效使用
  • 从数据采集到 API 市场的完整技术链路
  • 完整教程:基于太阳光模拟的AR-HUD聚焦光斑检测
  • 【题解】Atcoder Beginner Contest 445(ABC445) A~D,F
  • 深入解析Python中dict与set的实现原理
  • sql语言之having语句使用
  • GitHub 热榜项目 - 日榜(2026-02-14)
  • 汇总3
  • 2026年精雕机厂家实力推荐榜:CNC/模具/治具/石墨/金属/龙门/去毛刺/打孔精雕机十大品牌,聚焦高精度与稳定性的工业智造之选 - 品牌企业推荐师(官方)
  • 汇总5
  • 银川兴庆区搬家公司推荐哪家?看完这篇不踩坑!正规靠谱搬家公司实测 - 宁夏壹山网络
  • 2026国内UI/UE设计公司口碑实力榜 10家优选服务商盘点
  • 2026年钣金加工厂家推荐排行榜:激光切割/折弯焊接/冲压喷涂/精密钣金,涵盖不锈钢/铝合金/镀锌板等多材质,专业定制设备外壳与配件! - 品牌企业推荐师(官方)
  • 546456
  • 789789
  • Kubernetes 实战:基于 StatefulSet 构建 MySQL 主从集群(GTID + 自动复制)
  • SQL PRIMARY KEY(主键)
  • Java异常——自定义异常
  • HTML5 测验
  • 2026年二手乳品设备厂家推荐榜单:冻干机/杀菌机/过滤机/制粒机/罐装机/包装机/压片机/榨汁机/反应釜等源头工厂精选,助力降本增效 - 品牌企业推荐师(官方)
  • PHP HTTP详解
  • 速看!大数据领域异常检测的实战心得
  • 大数据领域数据可视化的热力图展示技巧
  • 构建未来教育新生态:智慧校园一体化平台方案关键模块建设浅析
  • 学习记录260214
  • 构建未来教育新生态:智慧校园系统方案关键模块建设浅析
  • 【贪心】BISHI48 小红的整数配对
  • 2026年沈阳变速箱维修厂家推荐榜:专业解决手动/自动变速箱故障,涵盖阀体/离合器维修,高效处理打滑/漏油/异响/顿挫/跳档问题,双离合维修技术领先! - 品牌企业推荐师(官方)
  • 概率论 - 贝叶斯定理 - 实践
  • 智慧校园服务平台-信息化建设与管理中心