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

lanqiaoOJ 4330:欧拉函数模板

【题目来源】
https://www.lanqiao.cn/problems/4330/learning/

【问题描述】
这是一道模板题。
首先给出欧拉函数的定义:即 φ(n) 表示的是小于等于 n 的数中和 n 互质的数的个数。
比如说 φ(6)=2,当 n 是质数的时候,显然有φ(n)=n-1。

【题目大意】
给定 n 个正整数,请你求出每个数的欧拉函数。

【输入格式】
输入共两行。
第一行输入一个整数表示 n。
第二行输入 n 个整数。

【输出格式】
输出共 n 行,每行输出 1 个整数表示对应数字的欧拉函数。​​​​​​​

【输入样例】
3
3 6 8​​​​​​​

【输出样例】
2
2
4

【说明】
小于等于 3 的数中与 3 互质的有:1, 2。
小于等于 6 的数中与 6 互质的有:1, 5。
小于等于 8 的数中与 8 互质的有:1, 3, 5, 7。

【评测数据规模】
保证 1≤n≤100,输入的 n 个整数范围为 [1,
2×10^9]。

【算法分析】
● 欧拉函数
φ(n) 是数论中的重要函数,用于计算小于等于 n 的数中和 n 互质的数的个数。特别地,当 n=1 时,φ(1)=1。

● 欧拉函数的计算公式:若 N 的质因数分解为
N=p₁ᵏ¹×p₂ᵏ²×...×pₘᵏᵐ,则 φ(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 个)。详见:https://blog.csdn.net/hnjzsyjyj/article/details/148135689】

● 欧拉函数性质‌
(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 的所有质因数。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int maxn=105;
int a[maxn];int oula(int x) {int ans=x;for(int i=2; i*i<=x; i++) {if(x%i==0) {ans=ans/i*(i-1);while(x%i==0) x/=i;}}if(x>1) ans=ans/x*(x-1);return ans;
}int main() {int n;cin>>n;for(int i=1; i<=n; i++) {cin>>a[i];cout<<oula(a[i])<<endl;}return 0;
}/*
in:
3
3 6 8out:
2
2
4
*/



【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/148159326
https://blog.csdn.net/hnjzsyjyj/article/details/148135689



 

http://www.xdnf.cn/news/8373.html

相关文章:

  • OceanBase 共享存储:云原生数据库的存储
  • 解析 Python 中的 if name == main 机制
  • 多版本Node.js共存管理工具NVM详细使用教程
  • 栈队列 模版题单
  • 2025年电工杯A题数据收集分享
  • 【萤火工场GD32VW553-IOT开发板】ADC电压表
  • 不使用Long.parseLong()将String转成long类型,不使用String.valueOf()将Long转成String类型
  • 通过上传使大模型读取并分析文件实战
  • AI浪潮下,第五消费时代的商业进化密码
  • PTA刷题笔记3(微难,有详解)
  • 自学嵌入式 day 23 - 数据结构 树状结构 哈希表
  • Java集合操作:如何避免并发修改异常
  • PictureThis 解锁高级会员版_v5.3.0 拍植物知名称和植物百科
  • Android屏幕适配利器:Kotlin动态尺寸计算工具类完整封装
  • C++高频面试考点 -- 智能指针
  • Dify1.RAG学习(未完待续)
  • 2025电工杯A题电工杯数学建模思路代码文章教学:光伏电站发电功率日前预测问题
  • 从乳制品行业转型看智能化升级新机遇——兼谈R²AIN SUITE的赋能实践
  • 关于flutter中Scaffold.of(context).openEndDrawer();不生效问题
  • Git全流程操作指南
  • 《Cesium全生态解析:从入门到精通的3D地理空间开发指南》
  • Flink集成资源管理器
  • 数据可视化利器 - Grafana 与 Prometheus 联手打造监控仪表盘
  • HTTP 与 HTTPS 深度解析:原理、实践与大型项目应用
  • 【昇腾开发者训练营:Dify大模型部署实战】MindIE + Dify + DeepSeek + Embedding模型 + Rerank模型
  • 跟Gemini制作PPT:图标的搜索
  • 静默战场:eBay瑞士站如何用“黄金用户”策略改写跨境电商价值逻辑
  • 怎么判断一个Android APP使用了Cocos 这个跨端框架
  • 图解深度学习 - 人工智能、机器学习和深度学习
  • 如何设置名称服务器