• 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进行对比

     可以发现是成功的~~

     

  • 相关阅读:
    eclipse用法和技巧
    eclipse常用快捷键集锦
    移动端input的虚拟键盘影响布局
    使用github page + Hexo搭建个人博客折腾记
    javascript数组的排序(sort,冒泡)
    响应式布局与媒体查询
    css属性选择器诸如Class^=,Class*= ,Class$=释义
    怎么预览 GitHub 项目里的网页或 Demo
    常见浏览器的兼容问题(一)
    jQuery常用交互效果
  • 原文地址:https://www.cnblogs.com/cindy123456/p/14816504.html
Copyright © 2020-2023  润新知