Puissance et Racine

Le
Jacquouille
Bonjour,

Avec mon antique XL 2003, les fonctions Puissance et Racine me permettent
d'élever un nombre à une telle puissance ou d'en extraire la racine.
Le tout n'est possible que si je connais le nombre au départ.

Si je prend la fonction à l'envers, comment puis-je savoir qu'un nombre (nb)
est la puissance (p) d'un autre nombre?
Exemple, si j'ai 81 comme nb, comment puis-je savoir qu'il représente 3 à la
puissance p, sans faire 36 calculs d'approche tels que 3², puis 3³, puis 3
exp4 ..?
Question : avec 2401 (7 à la 4°) ?

Merci et bonne fin de WE

Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #26442945
Bonjour Jacquouille,
Je ne vois pas d'autre solution que de tester toutes les combinaisons -
dans la limite de la feuille :
https://www.dropbox.com/s/c4yam612mqs0tr7/Capture.PNG?dl=0
Cordialement.
Daniel
Bonjour,
Avec mon antique XL 2003, les fonctions Puissance et Racine me
permettent d'élever un nombre à une telle puissance ou d'en extraire
la racine.
Le tout n'est possible que si je connais le nombre au départ.
Si je prend la fonction à l'envers, comment puis-je savoir qu'un
nombre (nb) est la puissance (p) d'un autre nombre?
Exemple, si j'ai 81 comme nb, comment puis-je savoir qu'il représente
3 à la puissance p, sans faire 36 calculs d'approche tels que 3²,
puis 3³, puis 3 exp4 .....?
Question : avec 2401 (7 à la 4°) ?
Merci et bonne fin de WE
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
Jacquouille
Le #26442958
Merci pour ta réponse.
Peut-on raisonnablement envisager une boucle de 1 à 2041, afin de savoir
s'ils sont di visibles par 2, 3 ... jusqu'à 2041?
?
2041 = 7^4.
Comment obtenir le 7 et le 4 dont je suis sensé ignorer tout?
Déjà merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"DanielCo" a écrit dans le message de groupe de discussion :
59a2b5bb$0$3310$
Bonjour Jacquouille,
Je ne vois pas d'autre solution que de tester toutes les combinaisons -
dans la limite de la feuille :
https://www.dropbox.com/s/c4yam612mqs0tr7/Capture.PNG?dl=0
Cordialement.
Daniel
Bonjour,
Avec mon antique XL 2003, les fonctions Puissance et Racine me permettent
d'élever un nombre à une telle puissance ou d'en extraire la racine.
Le tout n'est possible que si je connais le nombre au départ.
Si je prend la fonction à l'envers, comment puis-je savoir qu'un nombre
(nb) est la puissance (p) d'un autre nombre?
Exemple, si j'ai 81 comme nb, comment puis-je savoir qu'il représente 3 à
la puissance p, sans faire 36 calculs d'approche tels que 3², puis 3³,
puis 3 exp4 .....?
Question : avec 2401 (7 à la 4°) ?
Merci et bonne fin de WE
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
DanielCo
Le #26442959
La macro suivante donne 49^2 :
Sub test()
Dim Nombre As Long
Nombre = 2401
For i = 2 To Int(Nombre / 2)
For j = 1 To Int(Nombre / 2)
Debug.Print j ^ i
If j ^ i = Nombre Then
MsgBox "i = " & i & " j = " & j
Exit Sub
End If
If j ^ i > Nombre Then Exit For
Next j
Next i
End Sub
Daniel
Merci pour ta réponse.
Peut-on raisonnablement envisager une boucle de 1 à 2041, afin de
savoir s'ils sont di visibles par 2, 3 ... jusqu'à 2041?
?
2041 = 7^4.
Comment obtenir le 7 et le 4 dont je suis sensé ignorer tout?
Déjà merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"DanielCo" a écrit dans le message de groupe de discussion :
59a2b5bb$0$3310$
Bonjour Jacquouille,
Je ne vois pas d'autre solution que de tester toutes les combinaisons
-
dans la limite de la feuille :
https://www.dropbox.com/s/c4yam612mqs0tr7/Capture.PNG?dl=0
Cordialement.
Daniel
Bonjour,
Avec mon antique XL 2003, les fonctions Puissance et Racine me
permettent d'élever un nombre à une telle puissance ou d'en
extraire la racine.
Le tout n'est possible que si je connais le nombre au départ.
Si je prend la fonction à l'envers, comment puis-je savoir qu'un
nombre (nb) est la puissance (p) d'un autre nombre?
Exemple, si j'ai 81 comme nb, comment puis-je savoir qu'il
représente 3 à la puissance p, sans faire 36 calculs d'approche
tels que 3², puis 3³, puis 3 exp4 .....?
Question : avec 2401 (7 à la 4°) ?
Merci et bonne fin de WE
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
News.aioe.org
Le #26442963
Bonjour,
Une variante :
'-----------------------------------------------
Sub test()
Dim A As Long, B As Long, R As Double
Dim Compteur As Long, T(), V As Long
'Valeur de départ pour laquelle tu veux avoir
'les combinaisons possibles d'une valeur X
'élevée à une puissance Y
V = 625 '<<<<<<=====
For B = 1 To 2087
R = V ^ (1 / B)
If R - CLng(R) = 0 Then
If R = CLng(R) Then
Compteur = Compteur + 1
ReDim Preserve T(1 To Compteur)
T(Compteur) = R & " Puissance " & B
End If
End If
Next
Range("A1").Resize(UBound(T)).Value = Application.Transpose(T)
End Sub
'-----------------------------------------------
MichD
Jacquouille
Le #26442974
Salut Denis,
Pour le test suivant,je suppose que l'on peut déduire automatiquement que
3^10, on peut diviser 10/2 et 3² car j'ai obtenu 59049 en faisant 9^5?
59049 Puissance 1
243 Puissance 2
3 Puissance 10
ou 9^5 ?
grand merci et bonne fin de WE
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"News.aioe.org" a écrit dans le message de groupe de discussion :
onuubc$d4q$
Bonjour,
Une variante :
'-----------------------------------------------
Sub test()
Dim A As Long, B As Long, R As Double
Dim Compteur As Long, T(), V As Long
'Valeur de départ pour laquelle tu veux avoir
'les combinaisons possibles d'une valeur X
'élevée à une puissance Y
V = 625 '<<<<<<=====
For B = 1 To 2087
R = V ^ (1 / B)
If R - CLng(R) = 0 Then
If R = CLng(R) Then
Compteur = Compteur + 1
ReDim Preserve T(1 To Compteur)
T(Compteur) = R & " Puissance " & B
End If
End If
Next
Range("A1").Resize(UBound(T)).Value = Application.Transpose(T)
End Sub
'-----------------------------------------------
MichD
News.aioe.org
Le #26442983
Bien vu Jacquoulle!
La procédure "test" devrait retourner aussi la valeur 9 ^ 5 = 59049
Voici l'explication : Roule la procédure, elle va s'arrêter lorsque B = 5
- Utilise la touche F8 pour exécuter le reste de la procédure ligne par
ligne
- À cette ligne : If R - X = 0 Then les variables
- R et X ont la valeur 9 mais la différence des 2 nombres
- n'égalent pas 0.
Pourtant, dans cette petite procédure, tout est OK
'--------------------------
Sub Essai()
Dim A As Long, B As Long, Z As Long
A = 9: B = 9
If Z = A - B Then
MsgBox Z
End If
End Sub
'--------------------------
Il y a un truc que je ne comprends pas pourquoi...
L'année scolaire vient de débuter au Québec, je m'inscris en première année!
Je devrais pouvoir te répondre dans quelques mois!
'------------------------------------------------------------------------------
Sub test()
Dim B As Variant, R As Variant, T()
Dim Compteur As Long, V As Long, X As Long
'Valeur de départ pour laquelle tu veux avoir
'les combinaisons possibles d'une valeur X
'élevée à une puissance Y
V = 59049 '<<<<<<=====
For B = 1 To V
If B = 5 Then Stop
R = V ^ (1 / B)
X = CLng(R)
'Quand B = 5 , passe le curseur au-dessus des
'variables R et X. Tous les deux ont 9 pour valeur
'Cependant, R - X n'égale pas 0
If R - X = 0 Then
Compteur = Compteur + 1
ReDim Preserve T(1 To Compteur)
T(Compteur) = CLng(R) & " Puissance " & B
End If
Next
Columns(1).Clear
Range("A1").Resize(UBound(T)).Value = Application.Transpose(T)
End Sub
'------------------------------------------------------------------------------
MichD
News.aioe.org
Le #26442982
Bien vu Jacquoulle!
La procédure "test" devrait retourner aussi la valeur 9 ^ 5 = 59049
Voici l'explication : Roule la procédure, elle va s'arrêter lorsque B = 5
- Utilise la touche F8 pour exécuter le reste de la procédure ligne par
ligne
- À cette ligne : If R - X = 0 Then les variables
- R et X ont la valeur 9 mais la différence des 2 nombres
- n'égalent pas 0.
Pourtant, dans cette petite procédure, tout est OK
'--------------------------
Sub Essai()
Dim A As Long, B As Long, Z As Long
A = 9: B = 9
If Z = A - B Then
MsgBox Z
End If
End Sub
'--------------------------
Il y a un truc que je ne comprends pas pourquoi...
L'année scolaire vient de débuter au Québec, je m'inscris en première année!
Je devrais pouvoir te répondre dans quelques mois!
'------------------------------------------------------------------------------
Sub test()
Dim B As Variant, R As Variant, T()
Dim Compteur As Long, V As Long, X As Long
'Valeur de départ pour laquelle tu veux avoir
'les combinaisons possibles d'une valeur X
'élevée à une puissance Y
V = 59049 '<<<<<<=====
For B = 1 To V
If B = 5 Then Stop
R = V ^ (1 / B)
X = CLng(R)
'Quand B = 5 , passe le curseur au-dessus des
'variables R et X. Tous les deux ont 9 pour valeur
'Cependant, R - X n'égale pas 0
If R - X = 0 Then
Compteur = Compteur + 1
ReDim Preserve T(1 To Compteur)
T(Compteur) = CLng(R) & " Puissance " & B
End If
Next
Columns(1).Clear
Range("A1").Resize(UBound(T)).Value = Application.Transpose(T)
End Sub
'------------------------------------------------------------------------------
MichD
News.aioe.org
Le #26442988
OK, je vais me répondre à moi-même!
Avec cette procédure, cela fonctionne, la seule différence, j'ai
modifié dans la déclaration des variables :
Dim R As String au lieu de R As Double comme il se devrait.
Je n'ai aucune explication pour cette chinoiserie,
du Microsoft tout craché!
Si quelqu'un a une explication, je suis preneur.
'--------------------------------------------------------------------------
Sub test1()
Dim B As Long, R As String, T()
Dim Compteur As Long, V As Long, X As Long
'Valeur de départ pour laquelle tu veux avoir
'les combinaisons possibles d'une valeur X
'élevée à une puissance Y
V = 59049 '<<<<<<=====
For B = 1 To V
R = V ^ (1 / B)
X = Int(R)
If X - CDbl(R) = 0 Then
Compteur = Compteur + 1
ReDim Preserve T(1 To Compteur)
T(Compteur) = CLng(R) & " Puissance " & B
End If
Next
Columns(1).Clear
Range("A1").Resize(UBound(T)).Value = Application.Transpose(T)
End Sub
'--------------------------------------------------------------------------
MichD
News.aioe.org
Le #26442990
OK, je vais me répondre à moi-même!
Avec cette procédure, cela fonctionne, la seule différence, j'ai
modifié dans la déclaration des variables :
R As String au lieu de R As Double comme il se devrait.
Je n'ai aucune explication pour cette chinoiserie,
du Microsoft tout craché!
Si quelqu'un a une explication, je suis preneur.
'--------------------------------------------------------------------------
Sub test1()
Dim B As Long, R As String, T()
Dim Compteur As Long, V As Long, X As Long
'Valeur de départ pour laquelle tu veux avoir
'les combinaisons possibles d'une valeur X
'élevée à une puissance Y
V = 59049 '<<<<<<=====
For B = 1 To V
R = V ^ (1 / B)
X = Int(R)
If X - CDbl(R) = 0 Then
Compteur = Compteur + 1
ReDim Preserve T(1 To Compteur)
T(Compteur) = CLng(R) & " Puissance " & B
End If
Next
Columns(1).Clear
Range("A1").Resize(UBound(T)).Value = Application.Transpose(T)
End Sub
'--------------------------------------------------------------------------
MichD
isabelle
Le #26442993
Salut Denis, salut à tous,
je n'ai pas de réponse seulement une question en plus,
avec R As Variant
le résultat est:
59049^1
243^2
3^10
9^5 n'est pas trouvé
le mystère s'épaissit....
isabelle
Publicité
Poster une réponse
Anonyme