欧拉定理、欧拉函数、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 ...
随机推荐
- react 小技巧
1.当从redux里异步获取数据时,在render里渲染dom会出现数据还未获取到的情况,这时可以用 usableSchemas.data.vertexes && usableSche ...
- 【前端优化】图片延迟加载Lazy-loading的原理与简单实现
1.什么是lazy-loading 图片"懒加载" 为img标签src设置统一的图片链接,而将真实链接地址装在自定义属性中. 所以开始时候图片是不会加载的,我们将满足条件的图片的s ...
- SQL的判断重复新增或者修改
<insert id="insertTankStatisticData" parameterType="java.util.Map"> <se ...
- Java 基础 - 如何理解String不可变
ref: https://www.zhihu.com/question/20618891 第一个答案. 扩展“ Java 基础 - System.arraycopy() 浅拷贝 深拷贝
- js过滤字符串中的html标签
var str = 'add<a>daad</a><p>fsdada</p>' str.replace(/<[^<>]+>/g, ...
- vma
linux内核的每一样技术,都是为了解决某个问题的. vma结构体的提出是为了管理"虚拟内存空间"这个资源. 像brk(),mmap()分配给用户空间的都是虚拟地址(当然),那内核就要知道哪一部分虚拟 ...
- Http请求工具类 httputil
package com.snowfigure.kits.net; import java.io.BufferedReader; import java.io.IOException; import j ...
- 高级运维(一):反向代理&使用Varnish加速Web
案例1.反向代理 目标: 1.代理服务器可以将远程的Web服务器页面缓存于本地 2.代理服务器端口设置为80端口 3.用户通过访问代理服务器即可获得远程Web服务器页面上的内容 4.远程We ...
- 笨办法学Python记录--习题38-40,复习前面,运用list操作函数
#习题38 区分列表和字符串,用到了split(字符串专用函数),join.append.pop(这些是list操作函数) ten_things = "Apples Oranges Crow ...
- express简易代理请求
var express = require('express') var app = express() var proxy = require('http-proxy-middleware') va ...