6-3 Quick Power (10 分)

The function Power calculates the exponential function N​k​​. But since the exponential function grows rapidly, you are supposed to return (N​k​​)%10007instead.

Format of function:

int Power(int N, int k);

Both N and k are integers, which are no more than 2147483647.

Sample program of judge:

#include <stdio.h>int Power(int, int);const int MOD = 10007;
int main()
{int N, k;scanf("%d%d", &N, &k);printf("%d\n", Power(N, k));        return 0;
}/* Your function will be put here */

Sample Input 1:

2 3

Sample Output 1:

8

Sample Input 2:

128 2

Sample Output 2:

6377

快速幂取模

//积的取余等于取余的积的取余
(a*b) % m = pi;
((a%m)*(b%m)) % m = pj;
即证:
pi = pj;
0 < pi < m, 0 < pj < m;
证明如下:
1.a = m*x1 + p1;
2.b = m*x2 + p2;
3.(a%m)*(b%m) = p1*p2;
4.(a%m)*(b%m) = m*x3 + pj;
5.a*b = m*x1*m*x2 + p1*m*x2 + p2*m*x1 + p1*p2
6.    = m*(m*x1*x2 + p1*m2 + p2*m1) + p1*p2;
7.a*b = m*x4 + pi;
8.6 & 3-- > a*b = m*(m*x1*x2 + p1*m2 + p2*m1) + (a%m)*(b%m);
9.4 & 8-- > a*b = m*(m*x1*x2 + p1*m2 + p2*m1 + x3) + pj;
10.9 & 7-- > m*(m*x1*x2 + p1*m2 + p2*m1 + x3) + pj = m*x4 + pi;
pj=pi,得证!
-->a的b次方 mod c = (a mod c)的b次方 mod c

//快速幂

直到b为1

具体操作代码如下

int Power(int N, int k) {int n = 1;N = N%MOD;while (k > 0) {if (k % 2 == 1)n = n*N%MOD;//当k为奇数时k /= 2;N = N*N%MOD;}return n;
}

Quick Power相关推荐

  1. 数据结构:Quick Power

    The function Power calculates the exponential function N​k​​. But since the exponential function gro ...

  2. 开机BIOS语言(转载)

    开机自检时出现问题后会出现各种各样的英文短句,短句中包含了非常重要的信息,读懂这些信息可以自己解决一些小问题,可是这些英文难倒了一部分朋友,下面是一些常见的BIOS短句的解释,大家可以参考一下. 1. ...

  3. BIOS英文报错详解;你虽会做系统,但你会看BIOS英文报错吗,仅供大家参考学习。...

    有很多朋友英文不是很好,开机自检时出现问题后会出现各种各样的英文短句看不懂,但做系统没问题,可一碰到BIOS英文报错就傻眼啦,下边收集一些报错解释供大家参考学习: 1.cmos battery fai ...

  4. 计算机组装与维修是几级考试,计算机组装与维修期末考试试卷讲解学习.pdf

    学而不思则惘,思而不学则殆 组装与维修期末考试试卷 一.选择题 1.下列显卡接口中,能在一根线缆上同时传输高清晰.全数字的音频和视频信号的是() A .DVI B.S-VIDEO C .D-SUB D ...

  5. AWARD BIOS设置详解

    AWARD BIOS设置详解 AWARD公司是世界最大的BIOS生产厂商之一,其产品也被广泛使用.但由于AWARD BIOS里面的信息都是基于英文且需要用户对相关专业知识的理解相对深入,使得普通用户设 ...

  6. 开机报警disk boot sector is to be modified

    ★开机时提示以下内容如何解决? Warning: disk boot sector is to be modified type "Y" to accept ,any key to ...

  7. 高兴总结台式故障分析==方案

    台式故障分析 1.在什么的情况下需要修复引导 1)卡在Windows正在启动 2)开机显ctrl+alt+del 3)缺少或丢失文件 2.在什么的情况下重新装系统 1)开机提示ctrl+alt+del ...

  8. XP`开机速度慢的解决方法

    XP出来已经2,3年了,很多朋友说自己的XP启动速度慢,现在虽然很多优化软件都可以提高开机速度,但还是有很多朋友说慢,如果有用了优化软件优化开机速度确还不满意开机速度的就看一下吧,也许能解决你的问题哦 ...

  9. oenwrt 进不了bios_win7进不了bios原因及解决办法

    win7进不了bios是什么原因导致这种情况的,很多人现在安装windows7系统都是使用u盘安装系统的,所以使用u盘安装系统都需要进入bios,开机启动项给改为U盘启动才能安装系统,但是现在出现了进 ...

最新文章

  1. php mysql什么意思_php MySQLi是什么意思?
  2. 配置管理小报110904:htpasswd: The file passwd does not appear to be a valid htpasswd file.
  3. 深入理解数据结构和算法
  4. 表单form数据默认以键值对的形式将数据回发到服务器,回发非纯文本需使用enctype=multipart/form-data方式编码为整条消息...
  5. Entity FrameWork 操作使用详情
  6. MySQL表结构设计之范式化和反范式化对比
  7. DSO(dsoframer)的接口文档
  8. We7CMS内容管理系统助阵政府完善信息公开制度
  9. 山东科技大学计算机研究生学院官网,山东科技大学-计算机科学与工程学院
  10. Windows Live Writer插件开发
  11. 基于视觉的机器人抓取:从物体定位、物体姿态估计到平行抓取器抓取估计
  12. 容器化技术和Docker
  13. graphql 有必要吗_为graphql准备好移动开发了吗
  14. java 判断字符串是否相等
  15. Java面向对象之——封装
  16. 掌财社:前端接口怎么实现canvas动态图形效果?方法详情!
  17. html5游戏引擎推荐
  18. JavaScript错误对象
  19. arcgis中欧氏距离操作_ArcGIS教程:欧氏距离 (空间分析)
  20. 什么显卡是个人计算机主流,主流显卡

热门文章

  1. getch()和getche()
  2. 白盒测试之逻辑覆盖准则
  3. 直播报名|如何洞察消费者痛点?大数据分析为您支招!
  4. vue移动端富文本编辑器vue-html5-editor
  5. VR+文旅景区结合VR主题乐园VR设备厂家
  6. 虚拟机CentOS无网络连接
  7. Substrate区块链框架学习小组
  8. Anaconda 安装与 使用
  9. 腾讯企业邮箱设置与企业微信绑定
  10. CNN Architecture