zoukankan      html  css  js  c++  java
  • x ^y mod m

    Description

    许多著名的加密运算需要模指数运算。即,给定整数 x、y 和 m,计算 x ^y  mod 。本问题中,你

    的任务是给出一个有效的程序执行这种计算。

    Input

    输入的第一行是一个测试数据的个数 n,接着是 n 组测试数据。每组测试数据由一行上的三个正整数 x、

    y 和 m 构成,之间用空格隔开。你可以假定:1<x,m< =32768  1<y<109。

    Output

    对每组测试数据输出一行。第 i 行的输出是对于第 i 组测试数据 x、y 和 m,满足 z= y  mod 的非 负整数 z。

    Sample Input

    2 2 3 5 13314 15709 6501

    Sample Output

    3 3

    HINT

    本来懒得想那么多,直接就是a^m*b^m再^m算了,一个一个来,不要逼我

    然后可想而知,超时了

    上网查了一下,这题是有原型的,A^BmodC,大家可以查一下

    嗯.....思路如下,二分法,永远比一个一个来要简单方便得多

    #include "stdio.h"
    int power(int a,int b,int c)
    {
     int tmp;
     if (b==0)
     {
      return 1;
     }
     tmp=power((a*a)%c,b/2,c);
     if (b%2!=0)
     {
      tmp=(tmp*a)%c;
     }
     return tmp;
    }
    int main()
    {
     int a,b,c;
     int number;
     scanf("%d",&number);
     while(number--)
     {
     	scanf("%d %d %d",&a,&b,&c);
     	printf("%d\n",power(a,b,c));
     }
     return 0;
    }
    

      

  • 相关阅读:
    利用mybatis-generator自动生成代码
    gradle安装
    有关﹤![CDATA[ ]]> 说明
    mysql时间字段转换为毫秒格式
    string 与BigDecimal互转
    VLOOKUP多条件查找不使用辅助列
    BIEE-CSS样式大全
    VBA【遍历每个工作表并将工作表表名赋予B2单元格】
    深入理解公式{1,0}的用法
    DB2解锁
  • 原文地址:https://www.cnblogs.com/zhko11993/p/3809027.html
Copyright © 2011-2022 走看看