GMP cannot seem to allocate memory larger than this amount, despite being compiled in 64bit. I have a simple program that you can test this on, and whilst running it only seems to use up to 1500mb memory and no more. This should be able to calculate the number for even 32bit applications, however since it is 64bit, it seems very odd that it cannot calculate the number. Here is a simple program that runs into this issue
#include "gmp.h"
int main()
{
unsigned int n = 500000000;
mpz_t output;
mpz_init(output);
mpz_fac_ui(output, n);
mpz_clear(output);
return 0;
}
GMP 6.2.1 installed from MSYS2, Windows 10 64bit, 20h2, GCC