首页 > 其他 > 详细

大整数分解--适合两分子距离较近情况

时间:2019-11-13 14:08:20      阅读:72      评论:0      收藏:0      [点我收藏+]

 

 

尝试分解以下大整数:

8419248954524000439721779172023134688983838205866625782151550834434276874684863239544369195264071670152656061813873751842115416791829324879655667191724512456544905595733991629887800889255133717212624547817690492648616532902257249552981800714896543008295153051040335475732125114592095784407296265046992475467


### 1. 代码展示[^code]

```c
#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>
#include "dec.h"
using namespace std;
const char* N_str = "8419248954524000439721779172023134688983838205866625782151550834434276874684863239544369195264071670152656061813873751842115416791829324879655667191724512456544905595733991629887800889255133717212624547817690492648616532902257249552981800714896543008295153051040335475732125114592095784407296265046992475467";
const char* one_str = "1";

int main()
{
mpz_t n, one, kaifang, shang, yushu;

mpz_init_set_str(n,N_str,10);
mpz_init_set_str(one,one_str,10);

mpz_init(kaifang);
mpz_init(shang);
mpz_init(yushu);
mpz_sqrt(kaifang, n);
while(1)
{
mpz_fdiv_qr (shang, yushu, n, kaifang);
if(mpz_cmp_d(yushu, 0) == 0) break;
mpz_sub(kaifang, kaifang, one);
}
gmp_printf ("The two yinzi is %Zd and %Zd \n\n", shang, kaifang);

mpz_clear(n);
mpz_clear(shang);
mpz_clear(kaifang);
mpz_clear(yushu);
return 0;

}


```

### 2. 运行截图[^photo]
> * 请打开下列链接查看:
技术分享图片

 

 

 

大整数分解--适合两分子距离较近情况

原文:https://www.cnblogs.com/taitai139/p/11848150.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!