欧拉定理、欧拉函数、a/b%c
怕忘了……
欧拉函数 定义、证明、打表方法
欧拉定理 定义、证明
https://blog.csdn.net/zzkksunboy/article/details/73061013
剩余系、完系、简系
证明相当精彩!

而1~a*b中关于a*b的每个系有且仅有一个。
勿忘:积性函数指对于所有互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数。
====================================================================
https://blog.csdn.net/u014074562/article/details/50990326
a^b%c
在b非常大时的情况,
[前提 (a,c)=1]
因为a^phi(c)%c = 1
a^b%c=a^(b%phi(c))%c
c为素数时,phi(c)=c-1。
[无前提]
b>=phi(c)时,a^b%c=a^(b%phi(c)+phi(c))%c
b<phi(c)时,a^b%c=a^(b%phi(c))%c (前面的定理不一定正确)
证明:
https://www.luogu.org/problemnew/solution/P5091
例子:
a=d c=d^e b=d^f e>f
如a=2 b=1024 c=2
P5091 【模板】欧拉定理
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long const double eps=1e-;
const ll inf=1e9;
const ll mod=1e9+;
const int maxn=1e6+;
//const int maxlen=2e7+10; int phi[maxn],zhi[maxn],cnt_zhi;
bool vis[maxn];
int maxv=1e6;
//char str[maxn]; ll mul(ll a,ll b,ll m)
{
ll y=;
while (b)
{
if (b&)
y=y*a%m;
a=a*a%m;
b>>=;
}
return y;
} int main()
{
///互质:它们的公因数只有1
///i=1~m的phi(i) 顺便求出 bool use=;
int i,j,k,a,b,m;
char c;
phi[]=;///
for (i=;i<=maxv;i++)
{
if (!vis[i])
{
zhi[++cnt_zhi]=i;
phi[i]=i-;
}
for (j=;j<=cnt_zhi;j++)
{
k=i*zhi[j];
if (k>maxv)
break;
vis[k]=;
if (i%zhi[j]==)
{
phi[k]=phi[i]*zhi[j];
break;
}
else
phi[k]=phi[i]*(zhi[j]-);
}
} scanf("%d%d ",&a,&m);
b=;
while ((c=getchar())!=EOF)
{
if (!(c>= && c<=))
break; b=b*+c-;
if (b>=phi[m])
use=;
b=b%phi[m];
// b=(b*10+c-48)%phi[m];
} if (use)
printf("%lld",mul(a,b+phi[m],m));
else
printf("%lld",mul(a,b,m));
return ;
}
/*
2 12 8
2 5 3
*/
Advanced:
学习 快速幂&龟速乘&快速乘
https://blog.csdn.net/Cyan_rose/article/details/83065026
------------------------------------
a/b%c
b,c互质
则a/b 与 a^[phi(c)-1] 模c的结果是一致的 [a^phi(c) mod c = 1]
a/b%c=a^[phi(c)-1]%c
对于任意情况:
针对的a是特别大,b、c较小的情况
a/b%c=(a%bc)/b
证明:把a设为bc*x + b*y +z的形式 (x尽量大,然后是y尽量大,x,y,z>=0)
=============================
最后推荐:
https://www.cnblogs.com/zwfymqz/p/6740325.html
一些数论题目的模板
欧拉定理、欧拉函数、a/b%c的更多相关文章
- 2^x mod n = 1(欧拉定理,欧拉函数,快速幂乘)
2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- HDU4549 M斐波那契数列 矩阵快速幂+欧拉函数+欧拉定理
M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Sub ...
- 数论的欧拉定理证明 & 欧拉函数公式(转载)
欧拉函数 :欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) . 完全余数集合:定义小于 n 且和 n 互质的数 ...
- BZOJ3884: 上帝与集合的正确用法(欧拉函数 扩展欧拉定理)
Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 3860 Solved: 1751[Submit][Status][Discuss] Descripti ...
- XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】
1615: 刘备闯三国之三顾茅庐(三) Time Limit: 1000 MS Memory Limit: 128 MBSubmit: 45 Solved: 8[Submit][Status][W ...
- 欧拉函数&&欧拉定理
定义和简单性质 欧拉函数在OI中是个非常重要的东西,不知道的话会吃大亏的. 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1 ...
- [洛谷P5106]dkw的lcm:欧拉函数+容斥原理+扩展欧拉定理
分析 考虑使用欧拉函数的计算公式化简原式,因为有: \[lcm(i_1,i_2,...,i_k)=p_1^{q_{1\ max}} \times p_2^{q_{2\ max}} \times ... ...
- 欧拉函数&欧拉定理&降幂 总结
欧拉函数&欧拉定理&降幂 总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300214 这年头不总结一下是真的容易忘,老了老 ...
- 数学基础IV 欧拉函数 Miller Rabin Pollard's rho 欧拉定理 行列式
找了一些曾经没提到的算法.这应该是数学基础系最后一篇. 曾经的文章: 数学基础I 莫比乌斯反演I 莫比乌斯反演II 数学基础II 生成函数 数学基础III 博弈论 容斥原理(hidden) 线性基(h ...
随机推荐
- JS模拟实现题目(new debounce throwee 等)
模拟new实现 function newObject() { let obj = new Object(); let Con = [].shift.apply(arguments) obj.__pro ...
- adb.exe端口被占用,起不来报错
一.准备部署android功能调试时:报错 Please ensure that adb is correctly located at 'D:\ProgramFiles\eclipse_jee_ox ...
- Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装
虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的, ...
- 基于Libpcap实现一个网络数据包嗅探器
基本功能就是来捕获所有流经本网卡的数据包. 实现流程: 查找网络设备 打开网络设备 查找设备信息 输入过滤规则 编译输入规则 设置输入规则 开始捕获数据包 调用数据包分析模块 输出MAC,IP,协议以 ...
- PHP-全排列
给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] ...
- 获取微信企业的corpID,sercret,access_token,部门设置列表
获取微信企业的corpID,sercret,access_token,部门设置列表 zabbix调用微信发短信可能用到的一些变量,获取方式如下: 1.corpID(公司ID) 在我的企业--企业信 ...
- mobx中使用class语法或decorator修饰器时报错
之前课程中老师用的babel的版本比较低,我在学习时安装的babel版本较高,因此每当使用class语法或decorator修饰器时都会出现一些报错的情况! ❌ ERROR in ./src/inde ...
- PHP ftp_nb_continue() 函数
定义和用法 ftp_nb_continue() 函数连续获取/发送文件.(无阻塞) 该函数返回下列值之一: FTP_FAILED(发送/获取失败) FTP_FINISHED(发送/获取成功) FTP_ ...
- 基础(一):SCSI硬盘与IDE硬盘有什么区别
硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据.不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏.从整体的 ...
- Linux中网卡配置/etc/sysconfig/network-script/ifcfg-eth0
网络接口配置文件 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet #网卡类型 DEVIC ...