欧拉函数

Ansys Lumerical 2023 R1.2新功能实战:薄膜铌酸锂调制器仿真全流程解析 本文详细解析了Ansys Lumerical 2023 R1.2在薄膜铌酸锂电光相位调制器仿真中的最新功能与应用。通过实战演示,展示了从电极配置、电场计算到模式分析的全流程,重点介绍了各向异性介电常数支持和多物理场耦合优化等关键技术,助力开发者高效设计高性能光通信器件。 阅读详情

欧拉函数的定义:

   在数论中,对于正整数N,少于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(n)。

    φ函数的值:

   φ(x)=x(1-1/p(1))(1-1/p(2))(1-1/p(3))(1-1/p(4))…..(1-1/p(n)) 其中p(1),p(2)…p(n)为x

的所有质因数;x是正整数; φ(1)=1(唯一和1互质的数,且小于等于1)。注意:每种质因数只有一个。

     例如:

         φ(10)=10×(1-1/2)×(1-1/5)=4;

         1 3 7 9

         φ(30)=30×(1-1/2)×(1-1/3)×(1-1/5)=8;

         φ(49)=49×(1-1/7)=42;

相关拓展:给出一个N,求1..N中与N互质的数的和

ifgcd(n,i)=1 then gcd(n,n-i)=1 (1<=i<=n)

反证法:

        如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0

        而n%k=0

        那么必须保证i%k=0

        k是n的因子,如果i%k=0那么 gcd(n,i)=k,矛盾出现;

        于是问题变的非常简单: ANS=N*phi(N)/2

        i,n-i总是成对出现,并且和是n

       于是可能就有人问了,如果存在n-i=i那不是重复计算?

        答案是不会

        因为:

                n=2*i->i=n/2

1.如果n是奇数,那么n!=2*i,自然也不存在 n-i=i和重复计算之说

2.如果n是偶数,n=2*i成立,gcd(n,n/2)必然为n的一个因子,这个因子为1当且仅当n==2

3.于是对于n>2的偶数,绝对不存在gcd(n,n/2)=1所以更别说什么重复计算了

        对于n==2

        ans=2*1/2=1,正好也满足

        所以得到最终公式:

                  ans=N*phi(N)/2 


代码模板:

int euler(int n)
{
	int ans = n;
	for(int i = 2;i*i <= n;i++)
	{	
		if(n % i == 0)
			ans = ans/i*(i-1);
		while(n%i == 0)
			n/=i;
	}
	if(n > 1)
		ans = ans/n*(n-1);// 防止出现质数的情况
	return ans;
}

相关例题:      

一、

V - GCD

        The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b),is the largest divisor common to a and b,For example,(1,2)=1,(12,18)=6.
(a,b) can be easily found by the Euclidean algorithm. Now Carp is considering a little more difficult problem:
Given integers N and M, how many integer X satisfies 1<=X<=N and (X,N)>=M.

Input The first line of input is an integer T(T<=100) representing the number of test cases. The following T lines each contains two numbers N and M (2<=N<=1000000000, 1<=M<=N), representing a test case. Output For each test case,output the answer on a single line. Sample Input
3
1 1
10 2
10000 72
Sample Output
1
6
260

题意:给出n和m,求出1到n中有多少个整数x与n的最大公约数大于等于m

思路:设x = a*b,n = a*d(b与d互质且b <= d),此时gcd(x,n)便是a了。若要符合题意,则a >= m。如此,我们便只需要枚举a,计算1---d(也就是n/a)中有多少个整数与d互质,也就是求欧拉函数(d),所求和相加即为答案。

以下是AC代码:

#include <cstdio>  
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <list>
#include <map>
#include <stack>
#include <queue>
using namespace std;
#define ll long long
int euler(int n)
{
	int ans = n;
	for(int i = 2;i*i <= n;i++)
	{	
		if(n % i == 0)
			ans = ans/i*(i-1);
		while(n%i == 0)
			n/=i;
	}
	if(n > 1)
		ans = ans/n*(n-1);// 防止出现质数的情况
	return ans;
}
int main()
{
	int t;
	while(cin >> t)
	{
		while(d)
		{
			int ans = 0;
			int n,m;
			cin >> n >> m;
			for(int i = 1;i*i <= n;i++)
				if(n%i == 0)
				{
					if(i >= m && i*i != n)//i*i != n防止当等于n时计算两次
						ans+=euler(n/i);
					if(n/i >= m )
						ans+=euler(i);
				}
			cout << ans <<endl;
		}
	}
	//cout << "AC" <<endl;
	return 0;
}

二、

Calculation 2
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

Given a positive integer N, your task is to calculate the sum of the positive integers less than N which are not coprime to N. A is said to be coprime to B if A, B share no common positive divisors except 1.
 

Input

For each test case, there is a line containing a positive integer N(1 ≤ N ≤ 1000000000). A line containing a single 0 follows the last test case.
 

Output

For each test case, you should print the sum module 1000000007 in a line.
 

Sample Input

340
 

Sample Output

02


大意:给出一个整数n,在1到n-1中找出与n不互质的整数的和。

思路:需要用到上面相关拓展的知识点,求出1到n-1的整数的和,并减去1到n-1中与n互质的整数的和即可

附上AC代码:

#include <cstdio>  
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <list>
#include <map>
#include <stack>
#include <queue>
using namespace std;
#define ll long long
ll euler(ll n)
{
	ll ans = n;
	for(ll i = 2;i*i <= n;i++)
	{
		if(n % i == 0)
			ans = ans/i*(i-1);
		while(n % i == 0)
			n/=i;
	}
	if(n > 1)
		ans = ans/n*(n-1);
	return ans;
}
int main()
{
	ll n;
	while(cin >> n && n)
		cout << (n*(n-1)/2 - euler(n)*n/2)%1000000007 <<endl;
	//cout << "AC" <<endl;
	return 0;
}

告别配置噩梦:用Vcpkg三行命令为Easy3D自动安装Boost、CGAL和Qt(VS2022实测) 本文详细介绍了如何使用Vcpkg工具在VS2022环境下为Easy3D项目一键安装Boost、CGAL和Qt等依赖库,解决传统手动配置的复杂性问题。通过三行简单命令即可自动完成下载、编译和路径配置,大幅提升开发效率,特别适合C++开发者快速搭建3D图形开发环境。 阅读详情

相关推荐

【物联网】探索NE555:一款经典的集成电路(超详细)

NE555是一种集成电路,其内部结构包括比较器、RS触发器、电压比较器和输出级三个主要功能模块,外部引脚则提供了与其他电路元件进行连接的接口。NE555的设计目的是为了提供一种简单方便的定时器解决方案,它广泛应用于模拟和数字电路中。NE555作为一款经典的集成电路,具备设计简单、易于使用和稳定可靠的特点,在电子领域发展了广泛的应用。从单稳态模式到多稳态模式,再到振荡器模式,NE555可以满足不同的需求,并且可以与其他电路元件灵活组合,扩展其功能。然而,需要注意的是NE555也有一些限制。

Goforyouqp的博客 6万+

poj3090(欧拉函数)

http://poj.org/problem?id=3090 首先,题目主要是求从0,0能看到的点的个数。 先考虑只有1×1的时候,三个点,根据图明显看出,只需要计算下三角,结果=下三角的个数×2再加1(斜率为1的点)。 那么我们只需要计算斜率从0到1之间的个数就行了,不包括1,包括0.结果设为sum,那么最终就是2*sum+1.   1×1只有一个斜率为0的 2×2斜率有0,1/2(...

qq_39861441的博客 831

手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)

本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。

weixin_29597551的博客 334

欧拉函数最全总结

文章目录欧拉函数的内容一、欧拉函数的引入二、欧拉函数的定义三、欧拉函数的性质四、欧拉函数的计算方法(一)素数分解法(二)编程思维1.求n以内的所有素数2.求φ(n)3.格式化输出0-100欧拉函数表(“x?”代表十位数,“x”代表个位数)五、欧拉函数相关定理以及证明(一)定理1:缩系与欧拉函数的关系(二)定理2:缩系的充要条件(三)定理3:缩系拓展1. 简单证明:(a,m)=1,(x,m)=1,故(ax,m)=1。(四)定理4:设m>1,(a,m)=1,则aφ(m)≡1(mod m).1. **若ac≡bc

jiet07的博客 5万+

反激开关电源变压器设计实战:从理论到绕制的完整流程解析

本文详细解析了反激开关电源变压器的完整设计流程,从核心理论到实战绕制。文章以24W电源为例,手把手讲解如何根据输入输出电压、功率和频率等关键参数,计算匝比、峰值电流、电感量,并完成磁芯选择、匝数确定、气隙计算及线径选取。重点阐述了CCM模式下的设计要点与绕制工艺,旨在帮助工程师设计出稳定高效的反激变压器,避免常见陷阱。

weixin_29305313的博客 684

论文阅读—Square Attack: a query-efficient black-box adversarial attack via random search

论文阅读—Square Attack: a query-efficient black-box adversarial attack via random search 发表位置 ECCV 2020 摘要 作者提出了一种基于得分的黑盒Square attack,该模型不依赖于模型的局部梯度信息,因此可以绕过梯度隐藏防御攻击。Square Attack是一种随机搜索方法,它在随机位置选择局部的方形更新,使得每次迭代时扰动近似位于可行集的边界。 背景 当涉及到对安全至关重要的机器学习应用时,对抗性的例子尤其值得

yayayamaomaoya的博客 2493

欧拉函数总结

1.什么是欧拉函数 在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数[1](totient function,由西尔维斯特所命名)。 例如,因为1,3,5,7均和8互质。 欧拉函数实际上是模n的同余类所构成的乘法群(即环的所有单位元组成的乘法群)的阶。这个性质与拉格朗日定理一起构成了欧拉定理的证明。 总而言之,欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示。特殊的,φ(1)=1。 .

zgdlxs的博客 6699

手把手教你用Wireshark抓包分析Profinet非周期通信(附实战案例)

本文详细解析了PROFINET非周期通信(RTA)的技术原理与实战应用,通过Wireshark抓包分析,揭示从PLC请求到驱动器响应的完整对话过程。涵盖实验环境搭建、关键配置步骤、典型参数访问流程及故障诊断案例,帮助工程师深入理解并优化工业网络通信性能。

Black的专栏 1050

数学知识——欧拉函数

1∼N中与N互质的数的个数被称为欧拉函数,记为ϕN。

m0_70897036的博客 1657

【腾讯小龙虾 WorkBuddy 专栏 03】技能(Skills)制作全教程!自定义技能编写、导出分享、导入使用一步到位

🔥腾讯AI智能体WorkBuddy自定义技能全攻略 本文为零基础用户提供WorkBuddy自定义技能的完整教程,涵盖技能概念、编写规范到实操全流程。核心内容包括: 技能本质:标准化任务指令模板,可固化重复操作流程 三大价值:一键执行重复任务/跨设备共享/降低使用门槛 实操演示:以"桌面文档自动分类"为例,分步讲解编写、测试、导出 共享方案:支持单技能/批量导出,通过任意渠道传输分享 导入指南:3秒完成他人技能加载,并提供常见问题解决方案 高阶优化:增加异常处理、版本管理等提升技能普适性

AI人人懂 2966

jira的详细使用教程

​jira的详细使用教程,1,Jira- 是一款缺陷管理软件工具,用其进行缺陷的管理和跟踪。(是B/S架构的软件) 2,主要涉及的角色: 3,具体工作流 添加工作流 1.点击项目设置

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 3295

欧拉函数(Euler_Function)

一、基本概述 在数论,对正整数n,欧拉函数varphi(n)是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 二、计算公式 三、基本性质 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1). 欧拉函数的一些性...

无限迭代中...... 8826

学Simulink--人形机器人控制场景实例:基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真

matlab编辑% 连杆长度 (m)% 躯干(髋到CoM)% 大腿% 小腿% 质量 (kg)% 转动惯量(绕质心,简化为杆)matlab编辑% 躯干CoM(假设在髋上方L_body/2处)% 左大腿CoM% 左小腿CoM% (右腿类似,略)本文完成了基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真,实现了:✅ 定义7-DOF平面人形结构✅ 使用Symbolic Math Toolbox自动推导动力学方程✅ 生成。

amy_mhd的博客 397

【欧拉函数】 欧拉函数计算及打表

文章目录一.欧拉函数简介二.欧拉函数计算三.欧拉函数值打表 一.欧拉函数简介 在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(因此φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 注:a,b互质即gcd(a,b)=1 二.欧拉函数计算 计算公式φ(n)=n⋅∏i=1k(1−1pi)φ(n)=n\cdot

Qiuker_jl的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数论 —— 欧拉函数

数论算法,欧拉函数公式推导 + 代码

qq_62018762的博客 3761

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

欧拉函数与筛法求欧拉函数

欧拉函数[欧拉函数的定义 欧拉函数的公式 欧拉函数的公式推导 欧拉定理] 筛法求欧拉函数

咸鱼势力登场 1749

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Acwing 欧拉函数

欧拉函数,纯数学问题?

qq_43060884的博客 719

【数论】—— 欧拉函数

对于任意正整数nnn,欧拉函数φn\varphi(n)φn表示在不大于nnn的正整数中与nnn互素的数的个数。φ11φ11,即111。φ62φ62,即111555。φ124φ124,即111555777111111。怎样求出一个数的欧拉函数呢?公式呈上:对于任意正整数nnn,若nP1k1×P2k2×⋯×PmkmnP1k1​​×P2k2​​×⋯×Pmkm​。

Popandsoss2022的博客 1900

欧拉函数详解

欧拉函数详解 对一个正整数N,欧拉函数是小于N且与N互质的数的个数.。 例如φ(24)=8,因为1, 5, 7, 11, 13, 17, 19, 23均和 24 互质。 φ(n) = n*(1-1/p1)*(1-1/p2)*......(1-1/pn)   其中(p1.....pn)为N的素因子 欧拉函数的基本性质: ① N是不为0的整数。euler(1)=1(唯一和

大太阳 2万+

欧拉函数及快速筛欧拉函数

一、欧拉函数 \quad欧拉函数,即ϕ(n)\phi(n)ϕ(n),表示的是小于等于n和n互质的数的个数。 ϕ(1)=1\phi(1)=1ϕ(1)=1 当n是质数的时候,显然有ϕ(n)=n−1\phi(n)=n-1ϕ(n)=n−1 利用唯一分解定理,我们可以把一个整数唯一地分解为质数幂次的乘积,设n=p1k1p2k3⋯psksn=p_1^{k_1}p_2^{k_3}\cdots p_s^{k_s...

qq_40438165的博客 1681
上一篇: 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)
下一篇: 拓展欧几里得算法求逆元
MMMMMMMW
博客等级 码龄9年 34粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值