蓝桥杯算法提高VIP-欧拉函数(C语言)

蓝桥杯 算法提高 欧拉函数 算法提高 欧拉函数   时间限制:1.0s   内存限制:512.0MB      说明   2016.4.5 已更新试题,请重新提交自己的程序。 问题描述   给定一个大于1,不超过2000000的正整数n,输出欧拉函数,phi(n)的值。   如果你并不了解欧拉函数,那么请参阅提示。 输入格式   在给定的输入文件中进行读入:   一 阅读详情

题目描述

给定一个大于1,不超过2000000的正整数n,输出欧拉函数,phi(n)的值。
如果你并不了解欧拉函数,那么请参阅提示。

提示
欧拉函数phi(n)是数论中非常重要的一个函数,其表示1到n-1之间,与n互质的数的个数。显然的,我们可以通过定义直接计算phi(n)。
当然,phi(n)还有这么一种计算方法。
首先我们对n进行质因数分解,不妨设n=p1^a1  *  p2^a2  *  ...  *  pk^ak  (这里a^b表示a的b次幂,p1到pk为k个互不相同的质数,a1到ak均为正整数),那么
phi(n)=n(1-(1/p1))(1-(1/p2))....(1-(1/pk))
稍稍化简一下就是
phi(n)=n(p1-1)(p2-1)...(pk-1)/(p1*p2*...*pk)

计算的时候小心中间计算结果超过int类型上界,可通过调整公式各项的计算顺序避免(比如先做除法)!
 

输入格式

在给定的输入文件中进行读入: 
一行一个正整数n。 不超过2000000的正整数n

输出格式

将输出信息输出到指定的文件中: 
一行一个整数表示phi(n)。 

样例输入

17 

样例输出

16

思路

按照公式进行计算,先通过循环找出所有质因数,再套公式

根据题意,先用除法,再进行乘法

#include<stdio.h>

int compute(long long n, long long i) {//将i因子全部排除
	while (n % i == 0) {
		n /= i;
	}
	return n;
}
int computepn(long long n, int* a) {
	long long i;
	int k = 0;//记录质因子数
	long long num = n;
	for (i = 2;i <= num;i++) {
		if (num % i == 0) {//质因子
			a[k] = i;//记录合适的pi
			k++;
			num = compute(num, i);//除尽
		}
	}
	return k;//返回质因子个数
}

int main() {
	long long n;
	scanf("%lld", &n);
	int a[100000] = { 0 };//记录因子
	int k = computepn(n, a);
	for (int i = 0;i < k;i++) {//进行计算
		n /= a[i];//先进行除法
		n *= (a[i] - 1);
	}
	printf("%lld", n);
	return 0;
}

也能用计算质因数个数的方法来计算

#include<stdio.h>

int compute(int a, int b) {//判断两数的最大公因数
	if (a % b == 0) 
		return b;
	compute(b, a % b);
	
}
int main() {
	int n, i;
	int a[10000];
	int num = 0;//质因数数量
	scanf("%d", &n);
	for (i = 1;i < n;i++) {
		if (compute(i, n) == 1) {//最大公因数为1,两数互质
			num++;//质因数增加
		}
	}
	printf("%d", num);
	return 0;
}

Python实现欧拉函数算法-完整源码 欧拉函数,又称为欧拉-φ函数,是一个非常重要的数学概念。它可以用来计算小于或等于一个给定数的正整数中与该数互质的个数。在这篇文章中,我们将介绍如何使用Python实现欧拉函数算法,并附上完整的源代码。该函数计算小于或等于n的正整数中与n互质的个数,并返回结果。现在,你已经了解了如何使用Python实现欧拉函数算法。该算法可以用来解决各种数学问题,并在计算机科学中也有广泛的应用。首先,让我们来了解欧拉函数的定义。对于任意正整数n,欧拉函数定义为小于或等于n的正整数中与n互质的个数。符号表示为φ(n)。 阅读详情

相关推荐

WIFI中CSI的读取

学习目标: 目前正在做基于WIFI的无设备定位,准备使用信道状态信息(CSI),学习一下。 目前采集数据环境已经搭建好,准备研究信号的预处理。 学习内容: 1、 信号的读取——read_bf_file函数的研究 2、 3、 4、 1. read_bf_file详解: %READ_BF_FILE Reads in a file of beamforming feedback logs. % This version uses the *C* version of read_bfee, ...

sz3076799的博客 8892

[蓝桥杯][算法提高VIP]欧拉函数

题目描述 给定一个大于1,不超过2000000的正整数n,输出欧拉函数,phi(n)的值。 如果你并不了解欧拉函数,那么请参阅提示。 提示 欧拉函数phi(n)是数论中非常重要的一个函数,其表示1到n-1之间,与n互质的数的个数。显然的,我们可以通过定义直接计算phi(n)。 当然,phi(n)还有这么一种计算方法。 首先我们对n进行质因数分解,不妨设n=p1^a1 * p2^a2...

一叶之修的博客 816

别再被网站风控了!手把手教你修改Chromium源码,实现TLS指纹随机化

本文详细介绍了如何通过修改Chromium源码实现TLS指纹随机化,有效规避网站风控。文章深入解析了TLS指纹(如JA3指纹)的工作原理,并提供了具体的源码修改步骤和编译方法,帮助开发者突破高级反爬技术。通过动态打乱加密套件顺序,实现每次请求生成不同的指纹,显著提升自动化工具的隐蔽性。

weixin_28712661的博客 426

欧拉函数

欧拉函数 定义:欧拉函数phi(n),表示小于或等于n的数中与n互质的数的数目。 欧拉函数的性质: 1. phi(1)=1 2. 若n是素数p的k次幂:phi(n)=p^k-p^(k-1)=(p-1)p^(k-1) 3. 若m,n互质,phi(mn)=phi(m)*phi(n) 欧拉函数的递推式: 令p为n的最小质因数 若p^2|n,则phi(n)=phi(n/

whai的专栏 1184

生信实战|EffectorP3.0在植物病原菌效应子预测中的高效应用

本文详细介绍了EffectorP 3.0在植物病原菌效应子预测中的高效应用。通过机器学习模型,该工具能快速从海量分泌蛋白中批量预测胞质与质外体效应子,显著提升研究效率。文章提供了从环境配置、RNA-seq数据处理到批量预测的完整实战流程,并分享了结果解读与避坑指南,是生信研究人员进行病原物效应子鉴定的必备利器。

weixin_29195615的博客 301

大模型推理中Prefill与Decode、KV Cache三者说明

Prefill 阶段对输入 Prompt 并行编码,一次性构建KV Cache,属于计算密集型任务。Decode 阶段逐 token 迭代生成,复用KV Cache避免重复计算,属于显存带宽密集型任务。KV Cache是自回归推理的核心基石,用显存换时间,实现两阶段衔接与高效生成。PD 分离通过任务解耦、异构硬件、异步调度、独立批处理,解决传统一体化推理的资源冲突与利用率低下问题,是当前云端大模型推理服务的主流工程优化方向。

a486259的博客 1483

【欧拉函数】

1.1欧拉函数定义 首先,需要理解一下什么是欧拉函数,欧拉函数phi(n)的定义为小于等于n且与n互素的整数个数。那么什么是互素呢?互素是指对于两个数a和b,a和b的最大公约数为1(即gcd(a, b) = 1);

BlessingXRY的博客 876

5分钟搞定三网话费余额查询:手把手教你用PHP+HTML搭建查询系统(含API调用避坑指南)

本文详细介绍了如何使用PHP+HTML快速搭建三网话费余额查询系统,涵盖API调用避坑指南、前端UI设计及性能优化。通过统一处理移动、电信、联通三大运营商接口差异,实现高可用查询功能,并提供安全防护与生产部署建议,帮助开发者高效构建稳定可靠的话费查询工具。

weixin_29016833的博客 259

数论——欧拉函数

对于正整数 (n),欧拉函数 (\phi(n)) 定义为:\phi(n) = \text{小于或等于 } n \text{ 且与 } n \text{ 互质的正整数的个数}其中,

2301_80215285的博客 2225

13、使用 Mathematica 撰写文本

本文详细介绍了如何使用 Mathematica 进行文本撰写与处理。内容涵盖文本输入、格式设置、结构化排版、超链接插入、翻译与拼写检查工具的使用,以及将笔记本导出为多种格式(如 PDF、HTML、LATEX 和 RTF)的方法。通过实例演示了创建专业文档的完整流程,包括样式设置、公式推导、标题编号、页眉页脚配置等操作。适合希望利用 Mathematica 编写学术论文、技术报告或教学资料的用户参考。

sony5的博客 208

基于FPGA设计的信号分析仪(项目资料ID:28)

基于现场可编程门阵列(FPGA)设计的信号分析仪。该信号分析仪旨在实现对各类信号的精确分析,具备频率、幅度、相位等参数测量功能。通过采用 FPGA 作为核心处理单元,充分利用其并行处理能力和可重构特性,提高了系统的处理速度和灵活性。论文介绍了信号分析仪的总体设计方案,包括硬件电路设计和软件算法实现。

以培养嵌入式工程师为己任 1万+

蓝桥杯c语言算法提高质数,2019-03-22 [蓝桥杯][算法提高VIP]欧拉函数

题目描述给定一个大于1,不超过2000000的正整数n,输出欧拉函数,phi(n)的值。如果你并不了解欧拉函数,那么请参阅提示。提示欧拉函数phi(n)是数论中非常重要的一个函数,其表示1到n-1之间,与n互质的数的个数。显然的,我们可以通过定义直接计算phi(n)。当然,phi(n)还有这么一种计算方法。首先我们对n进行质因数分解,不妨设n=p1^a1 * p2^a2 * ... * ...

weixin_35804761的博客 330

Nmap源码分析(端口扫描)

端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放、关闭、过滤等),也为Nmap的服务与版本扫描、OS扫描、脚本扫描提供基本的指引信息。所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮助。 1简单回顾   首先简要回顾一下端口扫描的原理以及命令行选项。 1.1扫描原理   Nmap提供的10多种类型的端口扫描方法,如TCP SYN/ACK/FIN/Xmas/NULL/ Windows/Connect,FTP Bounce, Idle scan, UDP port u...

墨痕诉清风的博客 1597

蓝桥杯试题集试题总汇(C++)

蓝桥杯试题总汇(C++) 基础练习 BASIC-30 VIP试题 阶乘计算 高精度 ...

行秋的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-935 互质数个数

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-935 互质数个数 前言 关于数学的疑问 算法训练 互质数个数 C语言 C++语言 Java语言 Python语言 总结 第六届——第十三届省赛题解 第六届——第十二届国赛题解

红目香薰 712

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ch3(数学)——欧拉函数

1.自然语言描述 自然数n的欧拉函数指1~n之间所有与n互质的数的个数;比如,6的欧拉函数值为2。 欧拉函数表达式:phi(n) = n * (1 - 1/p1) * (1 - 1/p2) * (1-1/p3) * … * (1-1/pk) p为质因子的底数。用容斥原理证明:展开这个表达式,phi(n) = n - n/p1 - n/p2 - … - n/pk + n/(p1p2) + n/(p1p3) + … + n/(p(k-1)*pk) - …这样的形式,即在1~n这n个数中去掉所有不与n互质的数,首

kingdom365的博客 1493

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

欧拉函数(phi)

欧拉函数: phi[n]小于等于n的与n互质的数的个数  PHI(n) = (p1 ^ k1 - p1 ^ (k1 - 1)) * (p2 ^ k2 - p2 ^ (k2 - 1)) * ... * (pn ^ kn - pn ^ (kn - 1))                =n*(p1-1)(p2-1)……(pi-1)/(p1*p2*……pi);                   =...

xiaozheng的博客 3751

欧拉phi函数—详解

定义 111~NNN中与NNN互质的数的个数叫欧拉函数,记为φ(N)φ(N)\varphi(N) 对NNN分解质因数N=pc11∗pc11∗...∗pckkN=p1c1∗p1c1∗...∗pkckN=p_1^{c_1}*p_1^{c_1}*...*p_k^{c_k} 则有φ(N)=N∗(1−1p1)∗(1−1p2)∗...∗(1−1pk)φ(N)=N∗(1−1p1)∗(1−1p2)∗...∗...

niiick 1万+

欧拉函数算法

学习欧拉函数值和求欧拉函数表的个人笔记

释怀°Believe的博客 3391

欧拉函数及其证明

欧拉函数定义:phi(n) = 1到n中与n互质的数的个数   有公式: phi(n) = n* ∏ ( 1 - 1/pi ) 其中p为n的所有质因子,每个质因子只算一次 下面是证明: 1. 当n为质数,显然phi(n) = n-1 2. 当n=p^k ,其中p为素数   与n不互质的数必定有p因子,把p提出来   于是不互质的数有{ p*1, p*2, p*3, ........

weixin_30952535的博客 428

欧拉函数的推导

欧拉函数的定义:phi(n)表示在1~n中与n互质的数   难点:     & 与平常的递推唯一不同的是:递推不是由(n-1)推来,这给想出推理过程带来了麻烦     & 如何充分使用互质这个概念,不像其他递推能够容易的列出递推关系   分析:     &对互质的挖掘:            &  两个数的最大公约数(a,b)为 1  ( (a,b)表示a,

2268

欧拉函数(C语言实现)

欧拉函数(Euler's totient function)是指小于n的正整数中与n互质的数的数目,用φ(n)表示。特别的,φ(1)=1; 例如:φ(10)=4;1 3 7 9与10互质。 公式:φ(n)=n*(1-1/p(1))*(1-1/p(2))*(1-1/p(3))*...*(1-1/p(n)),其中p(1),p(2),p(3)...p(n)为n的所有质因数,每个质因数只能出现一...

weixin_30687587的博客 4449

【详解】欧拉函数

互质与欧拉函数 互质 任意自然数 a,ba,ba,b,若 gcd(a,b)=1gcd(a,b)=1gcd(a,b)=1,则称 a,ba,ba,b 互质。 对于三个数或更多个数,将 gcd(a,b,c)=1gcd(a,b,c)=1gcd(a,b,c)=1 的情况称为 a,b,ca,b,ca,b,c 互质。把 gcd(a,b)=gcd(b,c)=gcd(a,c)=1gcd(a,b)=gcd(b,c)=gcd(a,c)=1gcd(a,b)=gcd(b,c)=gcd(a,c)=1 称为两两互质,两者有明显的区别,显

_BOSS_的博客 672

1751: 欧拉函数

#include<iostream> using namespace std; int main() { int n; cin>>n; while(n--) { int a; cin >> a; int res=a; for(int i=2; i<=a/i; i++) if(a%i == 0) { res=res/i*(i-1);.

yzclhj的博客 568

数论Day4

目录质数约数欧拉函数快速幂扩展欧几里得算法中国剩余定理高斯消元求组合数容斥原理博弈论给定一个正整数 nn,请你求出 1∼n1∼n 中质数的个数。输入格式共一行,包含整数 nn。输出格式共一行,包含一个整数,表示 1∼n1∼n 中质数的个数。数据范围1≤n≤1061≤n≤106输入样例: 输出样例: 给定 nn 个正整数 aiai,对于每个整数 aiai,请你按照从小到大的顺序输出它的所有约数。输入格式第一行包含整数 nn。接下来 nn 行,每行包含一个整数 aiai。输出格式输出共 nn 行,

m0_66117547的博客 942

算法题 筛法求欧拉函数(Python)

题目 给定一个正整数n,求1~n中每个数的欧拉函数之和。 输入格式 共一行,包含一个整数n。 输出格式 共一行,包含一个整数,表示1~n中每个数的欧拉函数之和。 数据范围 1≤n≤106 输入样例: 6 输出样例: 12 代码 n = int(input()) primes = [] values = [1]*(n+1) st = [True]*(n+1) def get_eulor(n): for i in range(2, n+1): if s

blowfire123的博客 912
上一篇: 蓝桥杯算法提高VIP-Torry的困惑(提高型C语言)
Ehell
博客等级 码龄4年 23粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值