[HS] Distraction numérique

Le
Tatanka
Bonjour,

Il existe un seul nombre entier positif (Pierre de Fermat) tel que
celui qui le précède est un carré et celui qui le suit est un cube.
Quelle serait la plus courte macro permettant de le débusquer ?
En souvenir de la plus courte formule :-)

Serge
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #22430131
bonjour Serge,

je n'ai peut être pas compris la donne mais selon ma compréhension, un seul j'en doute... n(2,5,17,26,50,65...)

=ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+1)*(1/3)))=0)

If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

isabelle

Le 2010-08-01 17:22, Tatanka a écrit :
Bonjour,

Il existe un seul nombre entier positif (Pierre de Fermat) tel que
celui qui le précède est un carré et celui qui le suit est un cube.
Quelle serait la plus courte macro permettant de le débusquer ?
En souvenir de la plus courte formule :-)

Serge




LSteph
Le #22431841
Bonjour,

je ne vois que 26

soit le précède 25 carré (d'un nombre entier) 5
et le suit 27 cube (d'un entier) 3


--
LSteph


On 2 août, 05:21, isabelle
bonjour Serge,

je n'ai peut être pas compris la donne mais selon ma compréhension, u n seul j'en doute... n(2,5,17,26,50,65...)

=ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+1) *(1/3)­))=0)

If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

isabelle

Le 2010-08-01 17:22, Tatanka a écrit :



> Bonjour,

> Il existe un seul nombre entier positif (Pierre de Fermat) tel que
> celui qui le précède est un carré et celui qui le suit est un cub e.
> Quelle serait la plus courte macro permettant de le débusquer ?
> En souvenir de la plus courte formule :-)

> Serge- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Tatanka
Le #22431981
Bonjour Isabelle,

Tu as très bien compris la question et moi j'ai compris que tu voulais écrire ^ plutôt que * dans :
If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

Voici une solution ne contenant que 72 caractères sans compter les espaces :
Sub Fermat_Serge()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If Int(a) = a And Int(b) = b Then Exit Do
Loop
[a1] = n
End Sub

Mais curieusement :
Sub Fermat_Isabelle()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If (a Mod Int(a) = 0) And (b Mod Int(b)) = 0 Then Exit Do
Loop
[a1] = n
End Sub
ne fonctionne pas!
Por qué?

A--
Serge


"isabelle"
bonjour Serge,

je n'ai peut être pas compris la donne mais selon ma compréhension, un seul j'en doute... n(2,5,17,26,50,65...)

=ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+1)*(1/3)))=0)

If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

isabelle

Le 2010-08-01 17:22, Tatanka a écrit :
Bonjour,

Il existe un seul nombre entier positif (Pierre de Fermat) tel que
celui qui le précède est un carré et celui qui le suit est un cube.
Quelle serait la plus courte macro permettant de le débusquer ?
En souvenir de la plus courte formule :-)

Serge




Tatanka
Le #22431971
Salut,

C'est bien cela mais heureusement que c'est un petit nombre :-)
Quant à démontrer que c'est le seul, c'est une toute autre histoire!

A--
Serge

"LSteph" Bonjour,

je ne vois que 26

soit le précède 25 carré (d'un nombre entier) 5
et le suit 27 cube (d'un entier) 3


--
LSteph


On 2 août, 05:21, isabelle
bonjour Serge,

je n'ai peut être pas compris la donne mais selon ma compréhension, un seul j'en doute... n(2,5,17,26,50,65...)

=ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+1)*(1/3)­))=0)

If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

isabelle

Le 2010-08-01 17:22, Tatanka a écrit :



> Bonjour,

> Il existe un seul nombre entier positif (Pierre de Fermat) tel que
> celui qui le précède est un carré et celui qui le suit est un cube.
> Quelle serait la plus courte macro permettant de le débusquer ?
> En souvenir de la plus courte formule :-)

> Serge- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Tatanka
Le #22432111
Plutôt ceci :

Sub Fermat_Isabelle()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If (a Mod Int(a) = 0) And (b Mod Int(b) = 0) Then Exit Do
Loop
[a1] = n
End Sub

mais ça ne fonctionne pas non plus!


"Tatanka"
Bonjour Isabelle,

Tu as très bien compris la question et moi j'ai compris que tu voulais écrire ^ plutôt que * dans :
If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

Voici une solution ne contenant que 72 caractères sans compter les espaces :
Sub Fermat_Serge()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If Int(a) = a And Int(b) = b Then Exit Do
Loop
[a1] = n
End Sub

Mais curieusement :
Sub Fermat_Isabelle()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If (a Mod Int(a) = 0) And (b Mod Int(b)) = 0 Then Exit Do
Loop
[a1] = n
End Sub
ne fonctionne pas!
Por qué?

A--
Serge


"isabelle"
bonjour Serge,

je n'ai peut être pas compris la donne mais selon ma compréhension, un seul j'en doute... n(2,5,17,26,50,65...)

=ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+1)*(1/3)))=0)

If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

isabelle

Le 2010-08-01 17:22, Tatanka a écrit :
Bonjour,

Il existe un seul nombre entier positif (Pierre de Fermat) tel que
celui qui le précède est un carré et celui qui le suit est un cube.
Quelle serait la plus courte macro permettant de le débusquer ?
En souvenir de la plus courte formule :-)

Serge










LSteph
Le #22432721
Bonjour,
Isolons le cas ou a=0 pour la division donc on commence à 2 et
prenons en compte la différence entre l'entier et le décimal pour
cela
forcer le type au moins à single sinon on aura un variant et
interpreté comme un entier

Sub Fermat_Steph()
Dim a As Single, n As Single, b As Single
n = 2
test = False
Do

a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)

If (a - Int(a) = 0) And (b - Int(b) = 0) Then test = True:
Exit Do
n = n + 1
Loop While test = False
[a1] = n
End Sub





On 2 août, 14:54, "Tatanka"
Plutôt ceci :

Sub Fermat_Isabelle()
    Do
        n = n + 1
        a = (n - 1) ^ 0.5
        b = (n + 1) ^ (1 / 3)
        If (a Mod Int(a) = 0) And (b Mod Int(b) = 0) Then Exi t Do
    Loop
    [a1] = n
End Sub

mais ça ne fonctionne pas non plus!

"Tatanka"


> Bonjour Isabelle,

> Tu as très bien compris la question et moi j'ai compris que tu voulai s écrire ^ plutôt que * dans :
> If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * ( 1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

> Voici une solution ne contenant que 72 caractères sans compter les es paces :
> Sub Fermat_Serge()
>    Do
>        n = n + 1
>        a = (n - 1) ^ 0.5
>        b = (n + 1) ^ (1 / 3)
>        If Int(a) = a And Int(b) = b Then Exit Do
>    Loop
>    [a1] = n
> End Sub

> Mais curieusement :
> Sub Fermat_Isabelle()
>    Do
>        n = n + 1
>        a = (n - 1) ^ 0.5
>        b = (n + 1) ^ (1 / 3)
>        If (a Mod Int(a) = 0) And (b Mod Int(b)) = 0 Then Ex it Do
>    Loop
>    [a1] = n
> End Sub
> ne fonctionne pas!
> Por qué?

> A--
> Serge

> "isabelle" >> bonjour Serge,

>> je n'ai peut être pas compris la donne mais selon ma compréhension , un seul j'en doute... n(2,5,17,26,50,65...)

>> =ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1 +1)*(1/3)­))=0)

>> If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

>> isabelle

>> Le 2010-08-01 17:22, Tatanka a écrit :
>>> Bonjour,

>>> Il existe un seul nombre entier positif (Pierre de Fermat) tel que
>>> celui qui le précède est un carré et celui qui le suit est un c ube.
>>> Quelle serait la plus courte macro permettant de le débusquer ?
>>> En souvenir de la plus courte formule :-)

>>> Serge- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
LSteph
Le #22432811
re,

(si déjà entre 2 et 65536 il n'y a que 26 ....)

Sub aVeriFermat_Steph()
Dim a As Single, n As Single, b As Single
n = 2
test = False
Do

a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)

If (a - Int(a) = 0) And (b - Int(b) = 0) Then
[a65536].End(xlUp)(2) = n
Else
[a65536].End(xlUp)(2) = "---"
End If

n = n + 1
Loop While n < 65536

End Sub




On 2 août, 14:40, "Tatanka"
Salut,

C'est bien cela mais heureusement que c'est un petit nombre :-)
Quant à démontrer que c'est le seul, c'est une toute autre histoire!

A--
Serge

"LSteph" Bonjour,

je ne vois que  26

soit le précède 25 carré (d'un nombre entier)  5
et le suit 27 cube (d'un entier) 3

--
LSteph

On 2 août, 05:21, isabelle


> bonjour Serge,

> je n'ai peut être pas compris la donne mais selon ma compréhension, un seul j'en doute... n(2,5,17,26,50,65...)

> =ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+ 1)*(1/3)­­))=0)

> If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * ( 1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

> isabelle

> Le 2010-08-01 17:22, Tatanka a écrit :

> > Bonjour,

> > Il existe un seul nombre entier positif (Pierre de Fermat) tel que
> > celui qui le précède est un carré et celui qui le suit est un c ube.
> > Quelle serait la plus courte macro permettant de le débusquer ?
> > En souvenir de la plus courte formule :-)

> > Serge- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Tatanka
Le #22432861
Bizz!

Sur une feuille de calcul, a-ENT(a) est toujours égal à MOD(a;ENT(a)).
Par contre, en VBA, a-Int(a) n'est pas toujours égal à a Mod Int(a).
Ce qui explique la défaillance de la macro Fermat_Isabelle.
Quand même curieux que le modulo du VBA ne soit pas identique
au modulo d'une feuille de calcul!
Quelqu'un peut-il m'expliquer l'intérêt d'une telle chose?

Serge


"Tatanka"
Plutôt ceci :

Sub Fermat_Isabelle()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If (a Mod Int(a) = 0) And (b Mod Int(b) = 0) Then Exit Do
Loop
[a1] = n
End Sub

mais ça ne fonctionne pas non plus!


"Tatanka"
Bonjour Isabelle,

Tu as très bien compris la question et moi j'ai compris que tu voulais écrire ^ plutôt que * dans :
If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

Voici une solution ne contenant que 72 caractères sans compter les espaces :
Sub Fermat_Serge()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If Int(a) = a And Int(b) = b Then Exit Do
Loop
[a1] = n
End Sub

Mais curieusement :
Sub Fermat_Isabelle()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If (a Mod Int(a) = 0) And (b Mod Int(b)) = 0 Then Exit Do
Loop
[a1] = n
End Sub
ne fonctionne pas!
Por qué?

A--
Serge


"isabelle"
bonjour Serge,

je n'ai peut être pas compris la donne mais selon ma compréhension, un seul j'en doute... n(2,5,17,26,50,65...)

=ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+1)*(1/3)))=0)

If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

isabelle

Le 2010-08-01 17:22, Tatanka a écrit :
Bonjour,

Il existe un seul nombre entier positif (Pierre de Fermat) tel que
celui qui le précède est un carré et celui qui le suit est un cube.
Quelle serait la plus courte macro permettant de le débusquer ?
En souvenir de la plus courte formule :-)

Serge














LSteph
Le #22432931
Lis ma réponse précédente.

La question n'est pas là du tout, dans ta feuille les décimales sont
considérées
dans un code ou tu ne le précise pas elle ne le sont pas
( tu n'as pas déclaré le type de ta variable single ou double) ainsi
ton nombre est un variant celui ci rinterpreté comme un nombre est
traduit en entier
un nombre décimal arrondi à l'entier
moins la valeur de ce nombre arrondi à l'entier
ca fera toujours zero
pareil pour le mod ou la différence
si tu avais a=0.023 et que la valeur de a est interpretée
a prend pour valeur 0
0-0=0
avec un msgbox il y a encore une autre raison mais le principe est le
même
c'est pour illustrer cela

si dans ta boucle initiale(avant la correction que je t'ai proposé)
démarre qd même à n=2 pour éviter le n-1=0
tu mets
msgbox n &" - "& a &" - "& b
tu obtiens 2 - 1 - 1
alors que b devrait etre la racine cubique de 3
soit tu aurais 2 - 1 - 1.4422



On 2 août, 17:27, "Tatanka"
Bizz!

Sur une feuille de calcul, a-ENT(a) est toujours égal à MOD(a;ENT(a)) .
Par contre, en VBA, a-Int(a) n'est pas toujours égal à a Mod Int(a).
Ce qui explique la défaillance de la macro Fermat_Isabelle.
Quand même curieux que le modulo du VBA  ne soit pas identique
au modulo d'une feuille de calcul!
Quelqu'un peut-il m'expliquer l'intérêt d'une telle chose?

Serge

"Tatanka"


> Plutôt ceci :

> Sub Fermat_Isabelle()
>    Do
>        n = n + 1
>        a = (n - 1) ^ 0.5
>        b = (n + 1) ^ (1 / 3)
>        If (a Mod Int(a) = 0) And (b Mod Int(b) = 0) Then Ex it Do
>    Loop
>    [a1] = n
> End Sub

> mais ça ne fonctionne pas non plus!

> "Tatanka" >> Bonjour Isabelle,

>> Tu as très bien compris la question et moi j'ai compris que tu voula is écrire ^ plutôt que * dans :
>> If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

>> Voici une solution ne contenant que 72 caractères sans compter les e spaces :
>> Sub Fermat_Serge()
>>    Do
>>        n = n + 1
>>        a = (n - 1) ^ 0.5
>>        b = (n + 1) ^ (1 / 3)
>>        If Int(a) = a And Int(b) = b Then Exit Do
>>    Loop
>>    [a1] = n
>> End Sub

>> Mais curieusement :
>> Sub Fermat_Isabelle()
>>    Do
>>        n = n + 1
>>        a = (n - 1) ^ 0.5
>>        b = (n + 1) ^ (1 / 3)
>>        If (a Mod Int(a) = 0) And (b Mod Int(b)) = 0 Then E xit Do
>>    Loop
>>    [a1] = n
>> End Sub
>> ne fonctionne pas!
>> Por qué?

>> A--
>> Serge

>> "isabelle" >>> bonjour Serge,

>>> je n'ai peut être pas compris la donne mais selon ma compréhensio n, un seul j'en doute... n(2,5,17,26,50,65...)

>>> =ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A 1+1)*(1/3)­))=0)

>>> If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

>>> isabelle

>>> Le 2010-08-01 17:22, Tatanka a écrit :
>>>> Bonjour,

>>>> Il existe un seul nombre entier positif (Pierre de Fermat) tel que
>>>> celui qui le précède est un carré et celui qui le suit est un cube.
>>>> Quelle serait la plus courte macro permettant de le débusquer ?
>>>> En souvenir de la plus courte formule :-)

>>>> Serge- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
michdenis
Le #22433001
| Quelqu'un peut-il m'expliquer l'intérêt d'une telle chose?

Les concepteurs - programmeurs des fonctions de la feuille de calcul ne sont pas les mêmes que ceux des fonctions
appartenant aux VBA. En conséquence, il y a des petites différences...

Un autre exemple :
Feuille de calcul : =Arrondi(6.65;1) retourne 6.7
En VBA = Round(6.65,1) retourne 6.6

Les 2 fonctions réfèrent à des codes différents -> ce sont 2 fonctions différentes.
Celle en VBA est déficiente dans l'exemple donné.
Il vaut mieux utiliser = Application.WorksheetFunction.Round(6.65,1)
sachant que Application.WorksheetFunction utilise les fonctions de la feuille de calcul

--
MichD
--------------------------------------------


"Tatanka" i36o4t$9n6$
Bizz!

Sur une feuille de calcul, a-ENT(a) est toujours égal à MOD(a;ENT(a)).
Par contre, en VBA, a-Int(a) n'est pas toujours égal à a Mod Int(a).
Ce qui explique la défaillance de la macro Fermat_Isabelle.
Quand même curieux que le modulo du VBA ne soit pas identique
au modulo d'une feuille de calcul!
Quelqu'un peut-il m'expliquer l'intérêt d'une telle chose?

Serge


"Tatanka"
Plutôt ceci :

Sub Fermat_Isabelle()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If (a Mod Int(a) = 0) And (b Mod Int(b) = 0) Then Exit Do
Loop
[a1] = n
End Sub

mais ça ne fonctionne pas non plus!


"Tatanka"
Bonjour Isabelle,

Tu as très bien compris la question et moi j'ai compris que tu voulais écrire ^ plutôt que * dans :
If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

Voici une solution ne contenant que 72 caractères sans compter les espaces :
Sub Fermat_Serge()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If Int(a) = a And Int(b) = b Then Exit Do
Loop
[a1] = n
End Sub

Mais curieusement :
Sub Fermat_Isabelle()
Do
n = n + 1
a = (n - 1) ^ 0.5
b = (n + 1) ^ (1 / 3)
If (a Mod Int(a) = 0) And (b Mod Int(b)) = 0 Then Exit Do
Loop
[a1] = n
End Sub
ne fonctionne pas!
Por qué?

A--
Serge


"isabelle"
bonjour Serge,

je n'ai peut être pas compris la donne mais selon ma compréhension, un seul j'en doute... n(2,5,17,26,50,65...)

=ET(MOD(RACINE(A1-1);ENT(RACINE(A1-1)))=0;MOD((A1+1)*(1/3);ENT((A1+1)*(1/3)))=0)

If ((n - 1) * (1 / 2)) Mod Int((n - 1) * (1 / 2)) = 0 And (n + 1) * (1 / 3) Mod Int((n + 1) * (1 / 3)) = 0 Then

isabelle

Le 2010-08-01 17:22, Tatanka a écrit :
Bonjour,

Il existe un seul nombre entier positif (Pierre de Fermat) tel que
celui qui le précède est un carré et celui qui le suit est un cube.
Quelle serait la plus courte macro permettant de le débusquer ?
En souvenir de la plus courte formule :-)

Serge














Publicité
Poster une réponse
Anonyme