2016-02-20 2 views
0

J'essaie de trouver un moyen d'obtenir un nombre de millions de chiffres + dans un format lisible (exemple a * b^c + d) Est-ce un leur facile/moyen rapide de le faire en python? Ou y a-t-il une autre langue que je devrais utiliser?Essayer de trouver un moyen de "rétrécir" un très grand nombre

C'est ce que je suis en train maintenant et son très lent

  n = 2**1234567890 
      base = 32582657 

      base2 = 1 
      nb= 0 

      while base2 < n : 
        base2 = base * base2 
        nb = nb + 1 
      base2 = base2/base 
      nb = nb - 1 
      j = n - base2 

      if n == (base**nb) + j : 
        print('They match') 

Merci

+0

Que diriez-vous de la notation scientifique? – jfsturtz

+1

Il s'agit plus d'une question mathématique que d'une question de programmation. – BrenBarn

+0

J'ai besoin du nombre exact de sorte que la notation scientifique ne fonctionnera pas. Et oui, c'est une question de mathématiques, mais j'ai besoin de programmation pour le résoudre. –

Répondre

0

Vous pouvez compresser les chiffres dans cette forme:

number = 3245552 

if len(str(number)) > 6: 
    zeroes = len(str(number)) - 2 
    decimal = number/10.0**zeroes 
    print round(decimal, 2), '* 10 ^', zeroes 

Sortie: 32.46 * 10^5

+0

J'ai besoin que les maths soient réversibles. 32,46 * 10^5 = 3246000 –

+0

Il n'y a pas vraiment moyen de compresser un tel chiffre sans perdre certaines données. Eh bien, au moins, je n'en connais aucune. @JohnFitch – Areeb