PGCD de grand nombre avec R
Bonjour,
Voici mon problème: quelques fois dans mes programmes je suis amené à utiliser des fonctions mathématiques sur des grands nombres, et comme je veux éviter Python je me tourne vers R. Pour R j'ai trouvé la bibliothèque gmp et pour Python c'est natif, or le PGCD de mêmes grands nombres me donne un résultat différent ?!:?
L'idée de calculer un pgcd je l'ai reprise d'un site où un enseignant de mathématiques utilisait Python comme outil pédagogique (les chiffres aussi :P) : le lien
Programme R
Code:
1 2 3 4 5 6 7 8
| #!/usr/bin/Rscript
library(gmp)
a<- as.bigz(295400101920462517154)
b<-as.bigz(10720242531918724)
# Vérification1 print(a)
# Vérification2 print(b)
gcd.bigz(29400101920462517154,10720242531918724)
gcd.bigz(a,b) |
Citation:
Résultat: 196 (pour les 2)
Le programme Python
Code:
1 2 3 4 5 6 7 8
| #!/usr/bin/python
# -*- coding: utf-8 -*-
def pgcd(a, b):
if b == 0:
return a
else:
return pgcd(b, a%b)
print(pgcd(295400101920462517154,10720242531918724)) |
Je vais sur un site qui accepte les grands nombres comme ici et il me dit que le PGCD est de 74 donc comme Python.
Alors pourquoi R ne me donne pas 74 ? (je n'ai pas calculé à la main ce pgcd)
Les universitaires et les scientifiques plébiscitent R donc je pense que j'ai fait une boulette quelque part !!!
Merci de vos réponses