尝试分解以下大整数:
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