2015-07-27 2 views
0

Quelqu'un peut-il m'aider avec ceci? La fonction "mpz_mod" est erronée mais je ne sais pas comment la réparer.GMP (précision multiple GNU): erreur de fonction "mpz_mod"

#include <iostream> 
#include <gmp.h> 
#include <gmpxx.h> 
using namespace std; 
int main() 
{ 
    mpz_class p; 
    mpz_class y; 
    mpz_class m; 
    for (p=100 ; p<=500 ; p=p++) 
     { 
     for (y=50 ; y<=60 ; y=y++) 
      { 
       mpz_mod (m,p,y); 
      } 
      if (m==0) 
      cout << p << "," << y << " ok " <<endl; 
     } 
} 

Répondre

1

mpz_mod est pour le code C, et prend mpz_t * comme arguments. Puisque vous utilisez C++ et mpz_class, vous voulez m = p % y;

+0

Tout d'abord, merci! – dimig

+0

Je veux utiliser une fonction pour mod (%) mais à partir de la bibliothèque gmp.Que puis-je faire? – dimig

+1

'%' est surchargé par la bibliothèque gmp pour fonctionner sur les objets 'mpz_class', donc en utilisant'% 'vous obtenez la fonction mod de la bibliothèque. –