a的b次方对n取模
来源:互联网 发布:java转游戏开发 编辑:程序博客网 时间:2024/05/22 16:55
依据《算法导论》(第二版中文版,机械工业出版社出版)第539页的算法来实现,速度非常快。即使是对非常大的参数也是如此
#include<iostream>
using namespace std;
int f(int a,int b,int n);
int main()
{
cout<<f(19999,2999896,17)<<endl;
return 0;
}
int f(int a,int b,int n)
{
if(a<0||b<0||n<0)return -1;
int binary[32];
int index=0;
while(b)
{
if(b&1)
{
binary[index]=1;
}
else
{
binary[index]=0;
}
index++;
b>>=1;
}
index--;
int result=1;
while(index>=0)
{
result=(result*result)%n;
if(binary[index])
{
result=(result*a)%n;
}
index--;
}
return result;
}
- a的b次方对n取模
- 求a的b次方、a的b次方对m取模
- 求a的b次方、a的b次方对m取模
- a的b次方对c取模(1=<a,b,c<=1000000000)
- A的B次方对C取余
- a的b次方,结果取m的模
- a的b次方对9907取余,a,b小于2的31次方大于等于0,主要是时限的问题,时限1000ms。
- 次方求模 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100) 每组测试只有一行,
- a的n次方
- a的n次方
- 求a的N次方
- 计算a的b次方
- a的b次方的前N位数和后N位数
- 快速幂模板<n的m次方对mod取余>
- 乘法逆元、扩展欧几里得算法、二元一次方程、a的n次方取余
- java中的开方Math.sqrt(n)函数和平方{a的b次方Math.pow(a, b)}
- a的b次方与c的d次方
- a的n次方的快速算法
- extjs tree 展开节点
- 什么是博客营销?
- 无密码卸载趋势客户端的方法
- 关于内存DC
- SPI Slave端口及测试代码
- a的b次方对n取模
- BIOS选项探秘
- 一个随机数程序
- 如何在三个月掌握三年的经验(转载&&笔记)
- (*.mdf)无法复制,拷贝出现数据错误(循环冗余检查)
- 两个数论算法
- distcc: a fast, free distributed C/C++ compiler
- 两个经典面试题的解法
- Perl候选项 不提取到$1