数论——同余和费马小定理
同余:如果对于a和b,有a-b求余m等于零,则我们说a和b同余,记为a≡b(mod m)
其实我们也可以通俗易懂的总结一下,就是a mod m == b mod m
互质:gcd(a,b) == 1,我们就说两个数是互质的
费马小定理:对于a和p两个互质的数,存在等式a^(p-1)≡1(mod p)
我们举个经典的例子吧
对于2^100 mod 13 我可以看到,这里13和2是互质的,我们要用费马小定理的话应该怎么办?
是不是要构造出13-1啊!所以有 2^100≡(2^((12*8)+4))(mod 13),到了这一步,我们就可以用费马小定理了
对于2^12 是不是有2^12≡1mod13,所以我们去替换就行了
说的更明白点就是,2^100 和 2^((12*8)+4)) 取摸 13 的值相等,也就是和 (2^(12*8)mod13 * 2^4mod13)mod13相等,也就是和((1mod13)^8*2^4mod13)mod13相等,说到这里,大家就应该明白了吧,我这辈子应该也忘不了了吧
下面给一个经典题目吧
这个题目重在条件转换,这是数论题目的常规操作
我们首先需要理解S(k) be the number of (x1,x2,......,xk),这句话的意思是S(k)代表k个数能相加等于N的序列数目
然后还有一个问题是,例如N等于3,k = 2时,1+2和2+1是不是一个序列,这个问题模棱两可,但是数论问题就是要找规律,我们认定这是两个序列的话,容易得出来,S(1) + .... +S(N)等于2^(n-1),这样就可以用到费马小定理了!
具体见下面的AC代码
Input
2
Output
2
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
typedef long long ll;
string n;
int main()
{while(cin>>n){ll mod = 1000000006;ll sum = 0;ll power = 10;ll k = n.size()-1;while(n[k] == '0'){k--;}n[k] = n[k] - 1;for(ll i = n.size()-1; i > k; i--){n[i] = '9';}for(ll i = 0; i < n.size(); i++){sum = sum * power + (n[i]-'0');if(sum >= mod){sum %= mod;}}ll a = 2;ll result = 1;ll mod1 = 1000000007;while(sum){if(sum % 2 == 1) result = (result*a)%mod1;a = (a*a)%mod1;sum/=2;}cout<<result<<endl;}return 0;
}
数论——同余和费马小定理相关推荐
- luogu P2613 【模板】有理数取余(费马小定理,乘法逆元)
整理的算法模板合集: ACM模板 目录 题目传送门 题目传送门 相当于是一个高精的费马小定理求乘法逆元.虽然数据达到了101000110^{10001}1010001,但是我们可以使用快读然后一直模m ...
- c语言中余数恒等于1,费马小定理_KANGMANG201102_新浪博客
费马小定理是数论中的一个重要定理,其内容为: 假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p的余数恒等于1 费马小 ...
- 同余定理 逆元 中国剩余定理 费马小定理
同余定理 同余定理是数论中的重要概念.给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m). 两个整数a ...
- 数论四大定理(欧拉定理、费马小定理、中国剩余定理、威尔逊定理)
前置知识 同余 假设 a,ba,ba,b 都是整数,如果 nnn 是一个正整数,且存在整数 kkk 使得 a−b=k×na−b=k \times na−b=k×n,则称 a,ba,ba,b 模 nnn ...
- 初等数论--同余--欧拉函数、欧拉定理、费马小定理
初等数论--同余--欧拉函数.欧拉定理.费马小定理 概念 同余类,既约同余类 欧拉函数 完全剩余系,既约剩余系 关于完全剩余系.既约剩余系一些比较简单的定理 欧拉定理.费马小定理 博主是初学初等数论( ...
- 剩余系,剩余定理,同余定理,费马小定理的证明
费马小定理: 证明:假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p) 一.准备知识: 所谓"剩余系",就是指对于某一个特定的正整数n,一个整数集中的数模n所 ...
- 7. 数论四大定理(威尔逊定理、欧拉定理、费马小定理、孙子定理)
一.准备工作 点击查看数论基础知识 二.威尔逊定理 威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大. 1. 定理及其变形 当且仅当p为素 ...
- 小结:数论四大定理(威尔逊定理+欧拉定理+中国剩余定理+费马小定理)
前置知识: 模运算消去律:ac ≡ bc (mod p) → a ≡ b (mod p/gcd(c,p) ) 威尔逊定理: 当且仅当p为素数时,( p -1 )! ≡ -1 ( mod p ) 当且仅 ...
- 数学--数论--费马小定理+求逆元
1.费马小定理: (此处的p为素数) 证明: 费马小定理求逆元 如果p为小素数我们选择直接暴力,时间复杂度为: int Fermat_inverse(int a,int mod) {int res = ...
- 数论杂谈(欧拉定理与费马小定理结论与应用)
文章目录 欧拉定理: 欧拉定理性质: 扩展欧拉定理: 费马小定理: 指数循环节 费马大定理 逆元: 例题 原根 定义: 原根存在条件 例题 快速幂 代码 矩阵快速幂 原理: 代码: 欧拉定理: aφ( ...
最新文章
- 联想计算机农村,农村的联想
- jpa之PagingAndSortingRepository带分页查询
- 设计模式之_Strategy_01
- Flume-NG源码阅读之AvroSink
- CCIE-LAB-第八篇-SDWAN-Branch1_Branch2_Vmanage
- Dubbo与Zookeeper伪集群部署
- MongoDB学习之(二)java连接
- 636. 函数的独占时间
- 广数系统加工中心编程_编程十五年,谈谈对加工中心编程的一些看法...
- 模拟器和服务器共享文件夹,mumu模拟器如何跟电脑共享文件?导入文件到mumu模拟器共享文件夹教程...
- 关于自动化测试的前期发展历史及未来发展趋势
- C++ 定时每天十二点做某事
- idea插件安装包下载
- Charles一键设置Breakpoint(断点)
- 强化学习入门: the 10-armed bandit problem,e-greedy 算法
- 备战蓝桥杯单片机倒数第四天 小蜜蜂老师公众号更新内容
- 中兴服务器迈络思NS312网卡down掉网口物理指示灯不熄灭解决方法--NS312型号ConnectX-4 Lx
- 商城 商品模块 数据库 表设计
- 拼多多有哪些API?
- 给textView设置文字渐变色
热门文章
- js获取url参数方法
- centos7系统下postgresql12离线安装
- 用Python解决简单的水果分类问题(二)
- 拓端tecdat|R语言具有Student-t分布改进的GARCH(1,1)模型的贝叶斯估计
- (9)数据结构-双端队列
- 分子重构技术_4. 串珠模型重构
- python 如何判断字典存在key
- 成功解决./nvidia-installer: invalid option: “‐‐no‐opengl‐files“ ERROR: Invalid commandline, please run `
- caffe绘制训练过程的loss和accuracy曲线
- caffe自带可运行的两个例子:mnist和cifar10