欧拉函数,欧拉公式,降幂公式
欧拉函数
欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。(例如φ(8)=4,因为1,3,5,7均和8互质。)
通式:
其中p1, p2……pn为x的所有质因数,x是不为0的整数。
质因数:质因数(素因数或质因子)在数论里是指能整除给定正整数的质数。
int ouler(int n)
{int number = 1, i;for(i=2; i*i <= n; i++){if(n%i == 0){n =n/ i;number *= (i-1);while(n%i == 0){n /= i;number *= i;}}}if(n > 1)number *= (n-1);return number;
}
欧拉定理
若n,a为正整数,且n,a互质,则:
降幂
ab≡{ab%φ(n)( mod n)n,a互质ab( mod n)b<φ(n)ab%φ(n)+φ(n)( mod n)b≥φ(n)a^b\equiv \left\{ \begin{aligned} a^{b\%\varphi(n)}(\bmod\ n)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n,a互质\\ a^b (\bmod\ n)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b<\varphi(n)\\ a^{b\%\varphi(n)+\varphi(n)}(\bmod\ n)\ \ \ \ \ \ \ \ b\geq\varphi(n) \end{aligned} \right.ab≡⎩⎪⎪⎨⎪⎪⎧ab%φ(n)(mod n) n,a互质ab(mod n) b<φ(n)ab%φ(n)+φ(n)(mod n) b≥φ(n)
#include <stdio.h>
#include <string.h>
int main()
{long long int a,p;long long int b=0;char s[100];printf("底数 指数 模数\n");scanf("%lld %s %lld",&a,s,&p);int phi=ouler(p),len=strlen(s);printf("phi(%lld)=%d\n",p,phi);for(int i=0; i<len; i++)b=(b*10+s[i]-'0')%phi;int result=quickpow(a,b+phi,p);printf("%d",result%p);
}
int quickpow(long long int a,long long int b,long long int p)
{long long int r=1,base=a;while(b){if(b%2)r=r*base%p;base=base*base%p;b=b/2;}return r;
}
int ouler(int n)
{int result=n;for(int i=2; i*i<=n; i++){if(n%i==0){n=n/i;result=result*(i-1)/i;while(n%i==0){n=n/i;}}}if(n>1)result=result*(n-1)/n;return result;
}
欧拉函数,欧拉公式,降幂公式相关推荐
- Codeforces Round #538 (Div. 2) F. Please, another Queries on Array? 线段树 + 欧拉函数
传送门 文章目录 题意: 思路: 题意: 给你一个序列aaa,你需要实现两种操作: (1)(1)(1) 将[l,r][l,r][l,r]的aia_iai都乘rrr. (2)(2)(2) 求ϕ(∏i= ...
- 欧拉函数定义及其性质
参考:这里 前言 这是笔者第一次写博客,挑选了一些笔者认为比较有意思且简单的欧拉函数的性质,希望各位看完的同时也自己动手证明一下,会对学习欧拉函数有很大的帮助. 一.定义 在1~n中与n互质的数的个数 ...
- 欧拉φ函数和欧拉降幂公式
欧拉φ函数:在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为φ函数.欧拉商数等.φ(1)=1 C++实现: int GetEuler(i ...
- 欧拉函数公式的证明以及欧拉定理的简单应用(附带证明)
相信大家都已经了解了欧拉函数的定义 在1~N当中,与N互质的数的个数被叫做欧拉函数,简写成Φ(N): 在算数基本定理中我们可以把一个数N分解成所有质因子的乘积的形式,记作 N = p1^a1 * p2 ...
- 欧拉函数公式及其证明
以下转自 百度文库 炒鸡好QAQ 欧拉函数 : 欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) . 完全余数集 ...
- 【算法】欧拉函数公式证明
定义 欧拉函数 φ ( n ) \varphi(n) φ(n)表示小于等于 n n n且与 n n n互质 ( g c d ( x , n ) = 1 ) (gcd(x,n)=1) (gcd(x,n) ...
- 欧拉函数+欧拉定理+拓展欧拉定理(欧拉降幂)
目录 欧拉函数 欧拉定理 拓展欧拉定理(欧拉降幂) 欧拉函数 在数论中,有正整数n,欧拉函数是小于n的正整数中与n互质的数的数目. 它的通式如下: φ(n)=n*(1-1/p1)*(1-1/p2)*( ...
- 小于n与n互质的所有数的和(欧拉函数+快速幂)
欧拉函数的含义:对于正整数n, φ(n)的值表示 小于n并且与n互质 的整数 个数. 欧拉函数公式:φ(x)=x*(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)--(1-1/pn), ...
- 数学--数论-数论函数-欧拉函数
**欧拉函数定义 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.例如euler(8)=4,因为1,3,5,7均和8互质. Euler函数表达通式: 其中p1,p2--pn为x的所有素因数 ...
- 欧拉函数定理及其性质
欧拉函数就是指:给定一个n,求得1到n中与n互质的数的个数 再介绍欧拉通项前,首先得介绍唯一分解定理 那么求一个数的欧拉值的公式为: φ(n)=n * (1-1/P1) * (1-1/P2) * - ...
最新文章
- jfinal使用render之后还会继续往下执行代码吗
- 极光推送maven与代码,无需修改,粘贴即用
- 《走遍中国》珍藏版(六)
- linux系统启动自动启动,linux系统下的自动启动
- python3 slice
- 卡尔曼滤波 -- 从推导到应用(二)
- rest 怎么发送html,docusignapi - 是否可以使用REST API中的HTML创建Docusign模板? - 堆栈内存溢出...
- ARMv8体系结构基础05:比较和跳转指令
- Android viewpager 嵌套 viewpager滑动 点击事件冲突解决方案
- win11菜单栏的推荐项目怎么取消 windows11取消推荐项目的设置方法
- Linux 串口termios.h分析
- 辞职专心造火箭,贝佐斯能追上马斯克吗?
- linux 编译chromium,chromium(linux环境)指定版本下载和编译教程
- C++中各种文件后缀名的区别
- 海外众筹:kickstarter众筹创建成功项目分享
- 张果老能是鸿蒙时期一蝙蝠,感谢唐明皇,为我们弄清了张果老原来是只白蝙蝠...
- 大数据开发复习Spark篇
- 计算机专业英语学术能力培养任伟课后题答案,北京航空航天大学任伟教授学术讲座在我院成功举办...
- Wi-Fi基带芯片和Wi-Fi无线网卡设计方案
- May 7th, 10:00-11:00 am 1303, Schrodinger Maps (III) by Ioan Bejenaru
热门文章
- 【ArcGIS】安装ArcGISDesktop10.6报错A service pack is required on this oprating system.
- 新一代手机声音传音器THA-2开始发售,大家快来体验吧!
- [BUUCTF]PWN——[BJDCTF 2nd]snake_dyn
- 游戏攻略资料收集,制作技巧经验分享-游戏编辑2
- Python列表排序_revered逆序_max_min_sum
- 一.机器人概率学笔记_定位
- Java SE 基础知识~流程控制
- 传奇服务器人物技能怎么修改,传奇服务端上线0级技能,直接设置3级技能的设置方法...
- 金华职业技术学院计算机网络技术考试,金华职业技术学院2016年提前招生计算机应用技术专业测评方案...
- Java实现多文件生成压缩包下载