欧拉定理、欧拉函数、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 ...
随机推荐
- 微信小程序の模板
一.什么是模板 模板顾名思义就是可以复用的代码块.减少编码工作量. 二.例子 <template name="templateTest"> <view>th ...
- Java的枚举类型使用方法详解
1.背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏 ...
- 前端学习(十九)jquery(笔记)
jquery:库,框架 js,别人封装成的js 官网:http://jquery.com/ -----------------------------------1.7 ----------jq 1. ...
- Dubbox离线约束地址
地址: http://code.alibabatech.com/schema/dubbo/dubbo.xsd
- 40th 要掀桌子么 还是尬坐吧
今日学习精华: 面向对象编程里面有一句 非常经典的描述:-----通过类实例化一个对象,通过对象调方法----- 注意:对象调用的 方法 ,即 函数一定要有 参数 def ...
- 浅谈无线h5开发
最近一直在做h5的项目,对h5开发有了自己的理解.首先h5开发并不是指的html5的开发,而是指无线端的web开发,至于为什么叫h5开发,我觉得一方面是因为html5近几年还是挺受关注,另一方面h5在 ...
- git - Mac生成SSH key
步骤1.检查是否已经存在SSH Key 打开电脑终端,输入以下命令: ls -al ~/.ssh 会出现两种情况 步骤2. 生成/设置SSH Key 继续上一步可能出现的情况 (1)情况一: 终端出现 ...
- AcWing 204. 表达整数的奇怪方式 (线性同余方程组)打卡
给定2n个整数a1,a2,…,ana1,a2,…,an和m1,m2,…,mnm1,m2,…,mn,求一个最小的整数x,满足∀i∈[1,n],x≡mi(mod ai)∀i∈[1,n],x≡mi(mod ...
- vue2 开发环境部署 及 打包配置
一.脚手架工具(vue2 的脚手架工具是 vue-cli) 1.脚手架工具的安装 参考 : https://blog.csdn.net/wulala_hei/article/details/804 ...
- s13 day3作业
ha_proxy配置文件修改程序ha_file 为存储配置信息的文件.运行的时候对该文件进行操作.1.查询信息:用户输入域名,获得域名相关信息2.修改配置文件:用户输入的格式应该为 {"ba ...