JAVA确实是一种强类型的语言,今天在做这个题目"3的1234567次方的后五位数是多少"的时候就碰到了这个问题,首先是把所有数据类型都定义为int类型,但是发现只能求较小的数值,因为int型只有32位,而本题中要进行模运算的数在都应该是四位以上的十进制数,所以在平方后可能会越界.因而比较好的处理办法就是把在存各次模的数组定义为long型,也就是64位.这样问题就解决了.
另外就是JAVA对类型的要求很强,在进行非同类型数值运算的时候要记得强制轉換.
java 代码
- public class Main {
-
-
- public static void main(String[] args) {
- int a=3;
- int b=1234567;
- long n=100000;
- FigureTail tail=new FigureTail(a,b,n);
- System.out.println("最后五位应该是:"+tail.tailOut());
- }
- }
- class FigureTail{
- public FigureTail(int a,int b,long n){
- as=a;
- bs=b;
- ns=n;
- y[0]=(long)1;
- y[1]=(long)(as%ns);
- }
-
- public long tailOut(){
- int tempB=bs;
- while(tempB!=1){
- x[count]=(int)(tempB%2);
- tempB=(int)(tempB/2);
- count++;
- }
- x[count]=1;
- for(int i=2;i<32;i++)
- y[i]=(y[i-1]*y[i-1])%ns;
- long itsTail=(long)1;
- for(int j=1;j<32;j++){
- if(x[j-1]==1)
- { itsTail*=y[j];
- itsTail%=ns;
- }
- }
- itsTail%=ns;
- return itsTail ;
- }
- private int as;
- private int bs;
- private long ns;
- private int count=0;
- private long itsTail;
-
-
- public long[] y=new long[]{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
- private int[] x=new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-
-
- }
分享到:
相关推荐
】密码学 模逆与模幂计算与应用 实验五报告1. 编写下列基本程序: i) 对于不超过 216的两个正整数 a 与 n,计算 a-1 (mod n); ii) 对于不超过 216的三个正整数 a、e 与 n,计算 ae (mod n)。 2.编写下列应用程序: ...
通过本实验,使学生切实掌握作为大多数公钥密码计算基础的“模逆”与“模幂”算法,并学会运用上述两个基本算法来实现诸如 RSA、ElGamal 等公钥密码的各主要需求和功能,最终对“一个公钥密码体制如何应用”形成一定...
密码学实验:模逆与模幂计算与应用代码,仅供参考
密码学简答题及计算题.pdf
在大部分公钥密码体制中,大数模幂运算一直是最重要的运算之一,它的实现速度 直接影响到整个密码体制的效率,因此大数模幂运算一直是密码学界研究的热点,也由此产 生了很多有效的算法。本文总结了一些经典的大数模...
密码学 模逆与模幂计算与应用 1. 编写下列基本程序: i) 对于不超过 216的两个正整数 a 与 n,计算 a-1 (mod n); ii) 对于不超过 216的三个正整数 a、e 与 n,计算 ae (mod n)。 2.编写下列应用程序: i) 找到...
密码学练习题(含答案)
outputMax.java 求两个数中的最大数 overflowExample.java 演示溢出 precedence.java 演示自加运算符的优先级 primeNumber.java 输出100-200之间的所有素数 ranking.java 评定成绩等级 rankingBySwitch.java ...
Java密码学API注解及模板生成框架
海南大学《密码学》期末试卷题
MMX-密码学书籍包-共3部分.zip.001 注意:本资源一共三部分,只有把三部分都下载了放在同一目录下才能完全解压缩成功! 剩下两部分在这里: MMX-密码学书籍包-共3部分.zip.002 全部 pdf-CSDN下载 ...
华东师范大学-密码学与信息安全-课堂作业.zip
MMX-密码学书籍包-共3部分.zip.002 注意:本资源一共三部分,只有把三部分都下载了放在同一目录下才能完全解压缩成功! 详细内容见这里: http://blog.csdn.net/bjarnecpp/article/details/79012425 本压缩包包含书籍...
MMX-密码学书籍包-共3部分.zip.003 注意:本资源一共三部分,只有把三部分都下载了放在同一目录下才能完全解压缩成功! 详细内容见这里: http://blog.csdn.net/bjarnecpp/article/details/79012425 本压缩包包含书籍...
在RSA密码体制中,加密和解密运算都是模指数运算。计算 可以通过c-1次模乘来实现,然而,如果c非常大,其效率会很低下。 著名的平方-乘可以把计算所需的模乘的次数降低。
这是我关于密码学的笔记, 只讲各种加密算法到底是什么, 应当如何使用, 而不去讲学术的内容. 所以, 这是精华中的精华, 适合绝大多数想对密码学进行快速学习和完整了解的程序员. 我使用的是markdown形式做笔记, 树状...
密码编码学数学基础知识:快速指数模运算原理及其编程实现求逆元
自己总结的java安全密码学的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者
计算机网络安全 密码学 复习题.docx
现代密码学-第4版—清华大学 杨波—习题+参考答案