zoukankan      html  css  js  c++  java
  • 112

     

     计算2^1217

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <openssl/bn.h>
    
    int main()
    {
            BN_CTX *r;
            BIGNUM *a;
            BIGNUM *b;
            BIGNUM *c;
            
            char *x;
        char s[]="2";
        char t[]="1217";
    
            r = BN_CTX_new();
            a = BN_new();
            b = BN_new();
            c = BN_new();
            
    
            BN_dec2bn(&a, s);
            BN_dec2bn(&b, t);
            BN_exp(c,a,b,r);//计算2^1217次方
    
            x = BN_bn2dec(c);//把计算结果(大数)转化成10进制数
           
    
            puts(x);//打印出x
            
    
            BN_free(a);
            BN_free(b);
            BN_free(c);
           
    
            BN_CTX_free(r);
           
    
            free(x);
          
    
            return 0;
    }

    编译及运行结果:

     在华为云运行一下:

     与bc进行对比

    学号乘积
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <openssl/bn.h>
    
    int main()
    {
            BN_CTX *r[11];
            BIGNUM *bn[12];
            int i;
            const  char s[11][9]={"20181212","20181213","20181214","20181215","20181216","20181217","20181218","20181219","20181220","20181221","20181222"};
            char* out;
            char t[2]="1";
    
          
    
            for(i=0;i<11;i++){
    		bn[i]=BN_new();
    		BN_dec2bn(&bn[i],s[i]);
            	r[i] = BN_CTX_new();	
            }
            bn[11]=BN_new();
            BN_dec2bn(&bn[11],t);
    
            for(i=0;i<11;i++){
           		BN_mul(bn[11],bn[11],bn[i],r[i]); //计算11个同学学号的乘积
            }
    
            out= BN_bn2hex(bn[11]); //将大数转化转化成16进制的字符串
    
            puts(out);//打印出字符串
    
    
            for(i=0;i<11;i++){
    	BN_free(bn[i]);
                      BN_CTX_free(r[i]);
    	
            }
    	BN_free(bn[i]);
    
            free(out);
    
            return 0;
    }
    
    
    

      



    编译及运行结果:

     在华为云运行一下:

    与bc进行对比

     可以发现是成功的~~

     

  • 相关阅读:
    IE CSS Bug及解决方案参考手册
    如何学习Javascript
    JS获取当前对象大小以及屏幕分辨率等
    自适应网页设计的方法
    【Javascript Trick系列】二、table相关操作
    移动web开发经验总结
    兼容各种浏览器的常用按钮样式
    获取浏览器的高度和宽度
    让页面弹框垂直水平居中
    Vue is used in projects
  • 原文地址:https://www.cnblogs.com/cindy123456/p/14816504.html
Copyright © 2011-2022 走看看