--- a/gmp-h.in	2024-03-24 10:55:03.711573465 +0300
+++ b/gmp-h.in	2024-03-24 10:58:02.762349548 +0300
@@ -143,7 +143,11 @@
 typedef long int		mp_limb_signed_t;
 #endif
 #endif
+#if defined(_WIN64)
+typedef unsigned long long int	mp_bitcnt_t;
+#else
 typedef unsigned long int	mp_bitcnt_t;
+#endif
 
 /* For reference, note that the name __mpz_struct gets into C++ mangled
    function names, which means although the "__" suggests an internal, we
--- a/mpz/millerrabin.c	2024-03-24 10:59:05.420511561 +0300
+++ b/mpz/millerrabin.c	2024-03-24 10:59:11.428335102 +0300
@@ -59,7 +59,7 @@
 
 static int millerrabin (mpz_srcptr,
 			mpz_ptr, mpz_ptr,
-			mpz_srcptr, unsigned long int);
+			mpz_srcptr, mp_bitcnt_t);
 
 int
 mpz_millerrabin (mpz_srcptr n, int reps)
