Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] Distraction numérique

25 réponses
Avatar
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

10 réponses

1 2 3
Avatar
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




Avatar
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 wrote:
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 -
Avatar
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" a écrit dans le message de news: i35djs$g4r$
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




Avatar
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" a écrit dans le message de news:
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 wrote:
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 -
Avatar
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" a écrit dans le message de news: i36dvg$psk$
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" a écrit dans le message de news: i35djs$g4r$
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










Avatar
LSteph
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" wrote:
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" a écrit dans le message de new s: i36dvg$



> 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" a écrit dans le message de news: i35djs$g4... @speranza.aioe.org...
>> 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 -
Avatar
LSteph
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" wrote:
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" a écrit dans le message de news: 02208409
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 wrote:



> 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 -
Avatar
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" a écrit dans le message de news: i36f4u$rgk$
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" a écrit dans le message de news: i36dvg$psk$
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" a écrit dans le message de news: i35djs$g4r$
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














Avatar
LSteph
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" wrote:
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" a écrit dans le message de new s: i36f4u$



> 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" a écrit dans le message de n ews: i36dvg$
>> 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" a écrit dans le message de news: i35djs$g4..
>>> 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 -
Avatar
michdenis
| 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" a écrit dans le message de groupe de discussion :
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" a écrit dans le message de news: i36f4u$rgk$
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" a écrit dans le message de news: i36dvg$psk$
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" a écrit dans le message de news: i35djs$g4r$
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














1 2 3