Recherche de nombres curieux avec Maxima

Vous trouverez sur cette page quelques séries de nombres curieux, répondant à un ou plusieurs critères à la fois (par exemple les nombres de Fibonacci qui sont également premiers). J'ai personnellement calculée et vérifiée chacune de ses séries avec le logiciel Maxima. Pour chaque paragraphe le programme permettant d'obtenir les nombres est donné, ce qui vous permet de poursuivre la recherche de la série de nombres sous Maxima.

Sommaire de cette page

Les nombres premiers

Les nombres premiers jumeaux

Les nombres premiers triplés

Les nombres premiers quadruplés et plus

Les nombres parfaits

Les nombres de Fibonacci

Les nombres premiers de Fibonacci

Les carrés de Fibonacci

Les cubes de Fibonacci

Les nombres de Fibonacci "deux fois premiers"

Les nombres de Fibonacci "trois fois premiers"

Les nombres de Fibonacci "quatre fois premiers"

Les nombres de Fibonacci "cinq fois premiers"

Statistiques dans la suite de Fibonacci

Les nombres de Catalan

Obtenir un nombre réel en haute précision

Téléchargement et documentation de Maxima

 

Retour en haut de la page

Les nombres premiers

Un nombre est premier s'il ne possède que deux diviseurs : 1 et lui-même.

Rappel : 1 n'est pas premier, et 2 est le seul nombre premier pair

Dans le logiciel Maxima le test de primalité est la fonction primed(i) : elle renvoie True ou False selon que l'entier i est premier ou pas.

Le programme suivant affiche dans Maxima tous les nombres premiers compris entre 2 et 200 :

for i from 2 thru 200 do if primep(i) then print(i);

Résultat :

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199

Retour en haut de la page

Les nombres premiers jumeaux

Deux nombres premiers consécutifs sont jumeaux lorsque l'écart entre les deux nombres premiers est égal à 2.

Le programme suivant affiche dans Maxima toutes les paires de nombres premiers jumeaux inférieurs à 200 :

for i from 1 thru 200 do if primep(i) and primep(i+2) then print(i,i+2);

Résultat :

3    5
5
    7
11
    13
17
    19
29
    31
41
    43
59
    61
71
    73
101
    103
107
    109
137
    139
149
    151
179
    181
191
    193
197
    199

Retour en haut de la page

Les nombres premiers triplés

Trois nombres premiers consécutifs sont triplés s'il sont de la forme p, p+2 et p+6 ou bien de la forme p, p+4, p+6.

Le programme suivant affiche dans Maxima tous les nombres premiers triplés de la forme p, p+2 et p+6 inférieurs à 1000 :

for i from 1 thru 1000 do if primep(i) and primep(i+2) and primep(i+6) then print(i,i+2,i+6);

Résultat :

5    7    11
11
    13    17
17
    19    23
41
    43    47
101
    103    107
107
    109    113
191
    193    197
227
    229    233
311
    313    317
347
    349    353
461
    463    467
641
    643    647
821
    823    827
857
    859    863
881
    883    887

Le programme suivant affiche dans Maxima tous les nombres premiers triplés de la forme p, p+4 et p+6 inférieurs à 1000 :

for i from 1 thru 1000 do if primep(i) and primep(i+4) and primep(i+6) then print(i,i+4,i+6);

Résultat :

7    11    13
13
    17    19
37
    41    43
67
    71    73
97
    101    103
103
    107    109
193
    197    199
223
    227    229
277
    281    283
307
    311    313
457
    461    463
613
    617    619
823
    827    829
853
    857    859
877
    881    883

 

Retour en haut de la page

Les nombres premiers quadruplés et plus

Quatre nombres premiers consécutifs sont quadruplés s'il sont de la forme p, p+2, p+6, et p+8.

Le programme suivant affiche dans Maxima tous les nombres premiers quadruplés inférieurs à 20 000 :

for i from 1 thru 20000 do if primep(i) and primep(i+2) and primep(i+6) and primep(i+8) then print(i,i+2,i+6,i+8);

Résultat :

5    7    11    13
11
    13    17    19
101
    103    107    109
191
    193    197    199
821
    823    827    829
1481
    1483    1487    1489
1871
    1873    1877    1879
2081
    2083    2087    2089
3251
    3253    3257    3259
3461
    3463    3467    3469
5651
    5653    5657    5659
9431
    9433    9437    9439
13001
    13003    13007    13009
15641
    15643    15647    15649
15731
    15733    15737    15739
16061
    16063    16067    16069
18041
    18043    18047    18049
18911
    18913    18917    18919
19421
    19423    19427    19429

 

Cas des quintuplets et des sextuplets :

Le programme suivant affiche dans Maxima tous les nombres premiers quintuplés de la forme p, p+2, p+6, p+8, et p+12 inférieurs à 20 000 :

for i from 1 thru 20000 do if primep(i) and primep(i+2) and primep(i+6) and primep(i+8) and primep(i+12) then print(i,i+2,i+6,i+8,i+12);

Résultat :

5    7    11    13    17
11
    13    17    19    23
101
    103    107    109    113
1481
    1483    1487    1489    1493
16061
    16063    16067    16069    16073
19421
    19423    19427    19429    19433

Le programme suivant affiche dans Maxima tous les nombres premiers quintuplés de la forme p, p+4, p+6, p+10, et p+12 inférieurs à 20 000 :

for i from 1 thru 20000 do if primep(i) and primep(i+4) and primep(i+6) and primep(i+10) and primep(i+12) then print(i,i+4,i+6,i+10,i+12);

Résultat :

7    11    13    17    19
97
    101    103    107    109
1867
    1871    1873    1877    1879
3457
    3461    3463    3467    3469
5647
    5651    5653    5657    5659
15727
    15731    15733    15737    15739
16057
    16061    16063    16067    16069
19417
    19421    19423    19427    19429

Le programme suivant affiche dans Maxima tous les nombres premiers sextuplés de la forme p, p+4, p+6, p+10, p+12, et p+16 inférieurs à 100 000 :

for i from 1 thru 100000 do if primep(i) and primep(i+4) and primep(i+6) and primep(i+10) and primep(i+12) and primep(i+16) then print(i,i+4,i+6,i+10,i+12,i+16);

Résultat :

7    11    13    17    19    23
97
    101    103    107    109    113
16057
    16061    16063    16067    16069    16073
19417
    19421    19423    19427    19429    19433
43777
    43781    43783    43787    43789    43793

 

Retour en haut de la page

Les nombres parfaits

Un nombre est parfait s'il est égal à la somme de ses diviseurs propres (c'est-à-dire ses diviseurs autres que le nombre lui-même).

Exemple :

On peut également dire qu'un nombre est parfait s'il est égal à la moitié de la somme de tous ses diviseurs (y compris le nombre lui-même cette fois).

Les fonctions utiles dans Maxima sont :

Le programme suivant affiche dans Maxima tous les nombres parfaits compris entre 1 et 1000 :

for i from 1 thru 1000 do if divsum(i)=2*i then print(i);

Voici les premiers nombres parfaits :

6

28

496

8 128

33 550 336

8 589 869 056

137 438 691 328

2 305 843 008 139 952 128

2 658 455 991 569 831 744 654 692 615 953 842 176

etc.

Quel est le prochain nombre parfait après 100 000 ? Nous allons cette fois utiliser la boucle while de Maxima afin que le programme s'arrête dès qu'il trouve un nombre parfait :

i:100000$
while divsum(i)#2*i do (i:i+1)$
print(i," est un nombre parfait");

Résultat :

33550336 est un nombre parfait

Remarque : dans Maxima l'opérateur # signifie "différent de" (ou "non égal").

Retour en haut de la page

Les nombres de Fibonacci

La suite des nombres de Fibonacci est définie par Fn = Fn-1 + Fn-2 avec F1=F2=1

En clair chaque élément de la suite est égal à la somme des deux éléments précédents, et les deux premiers éléments de la suite valent 1.

Le programme Maxima suivant affiche les 20 premiers nombres de Fibonnaci :

a:1;
b:1;
c:a+b;
for i from 1 thru 20 do (print(a),a:b,b:c,c:a+b);

Remarque :

Dans un programme Maxima l'opérateur : est l'opérateur d'affectation : a:1 signifie la variable a prend la valeur 1.

Résultat :

1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

Remarque :

Dans le programme précédent on commence au début de la suite de Fibonacci : les deux premiers termes sont 1 et 1. Si on veut tester par exemple les termes de la suite à partir du 2000ème terme il faut remplacer les lignes a:1; et b:1; au début du progrmme par :

n:2000$
a:floor(float(((1+sqrt(5))^n-(1-sqrt(5))^n)/(sqrt(5)*2^n)))$
b:floor(float(((1+sqrt(5))^(n+1)-(1-sqrt(5))^(n+1))/(sqrt(5)*2^(n+1))))$

n représente le rang de départ, a prend directement la valeur Fn et b la valeur Fn+1.

Retour en haut de la page

Les nombres premiers de Fibonacci

Il s'agit des nombres présents dans la suite de Fibonacci (1 1 2 3 5 8 13 etc.) et qui sont premiers.

Remarque :

La fonction primep(a) de Maxima teste si l'entier a est un nombre premier.

Le programme Maxima suivant teste les 200 premiers nombres de Fibonnacci et affiche ceux qui sont premiers :

a:1;
b:1;
c:a+b;
for i from 1 thru 200 do (if primep(a) then print(a),a:b,b:c,c:a+b);

Résultat :

2
3
5
13
89
233
1597
28657
514229
433494437
2971215073
99194853094755497
1066340417491710595814572169
19134702400093278081449423917

 

Le programme Maxima suivant teste les 2000 premiers nombres de Fibonnacci et affiche ceux qui font partie d'une paire de nombres premiers jumeaux :

a:1;
b:1;
c:a+b;
for i from 1 thru 2000 do (if primep(a) and (primep(a+2) or primep(a-2)) then print(a),a:b,b:c,c:a+b);

Résultat :

3
5
13

Retour en haut de la page

Les carrés de Fibonacci

Il s'agit des nombres présents dans la suite de Fibonacci (1 1 2 3 5 8 13 etc.) et qui sont des carrés parfaits.

Le programme Maxima suivant teste les 2000 premiers nombres de Fibonnacci et affiche ceux qui sont des carrés parfaits :

a:1;
b:1;
c:a+b;
for i from 1 thru 2000 do (r:sqrt(a), if floor(r)=r then print(a),a:b,b:c,c:a+b);

La variable r est égale à la racine carrée du nombre de Fibinacci a.

La fonction floor(r) de Maxima renvoie la partie entière de r.

Le nombre de Fibonacci a est un carré parfait si la partie entière de sa racine carrée est égale à la racine carrée elle-même.

Résultat :

1 = 1^2

144 = 12^2

Conclusion : parmi les 2000 premiers nombres de Fibonacci, seulement 2 sont des carrés parfaits : 1 et 144.

Retour en haut de la page

Les cubes de Fibonacci

Il s'agit des nombres présents dans la suite de Fibonacci (1 1 2 3 5 8 13 etc.) et qui sont des cubes parfaits.

Le programme Maxima suivant teste les 1000 premiers nombres de Fibonnacci et affiche ceux qui sont des cubes parfaits :

a:1;
b:1;
c:a+b;
for i from 1 thru 1000 do (r:a^(1/3), if floor(r)=r then print(a),a:b,b:c,c:a+b);

La variable r est égale à la racine cubique (a^(1/3)) du nombre de Fibinacci a.

La fonction floor(r) de Maxima renvoie la partie entière de r.

Le nombre de Fibonacci a est un cube parfait si la partie entière de sa racine cubique est égale à la racine cubique elle-même.

Résultat :

1 = 1^3

8 = 2^3

Conclusion : parmi les 1000 premiers nombres de Fibonacci, seulement 2 sont des cubes parfaits : 1 et 8.

Retour en haut de la page

Les nombres de Fibonacci "deux fois premiers"

Il s'agit des nombres présents dans la suite de Fibonacci (1 1 2 3 5 8 13 etc.) et qui sont égaux à 2p, où p est un nombre premier.

La fonction mod(a,n) de Maxima renvoie le reste de la division entière de a par n (fonction modulo) : mod(a,2) vaut 0 si l'entier a est un multiple de 2.

Le programme Maxima suivant teste les 4000 premiers nombres de Fibonnacci et affiche ceux qui sont de la forme 2p avec p premier :

a:1;
b:1;
c:a+b;
for i from 1 thru 4000 do (if (mod(a,2)=0 and primep(a/2)) then print(a),a:b,b:c,c:a+b);

Résultat :

34 = 2x17

Conclusion : parmi les 4000 premiers nombres de Fibonacci, seul 34 est égal au double d'un nombre premier.

Retour en haut de la page

Les nombres de Fibonacci "trois fois premiers"

Il s'agit des nombres présents dans la suite de Fibonacci (1 1 2 3 5 8 13 etc.) et qui sont égaux à 3p, où p est un nombre premier.

La fonction mod(a,n) de Maxima renvoie le reste de la division entière de a par n (fonction modulo) : mod(a,3) vaut 0 si l'entier a est un multiple de 3.

Le programme Maxima suivant teste les 4000 premiers nombres de Fibonnacci et affiche ceux qui sont de la forme 3p avec p premier :

a:1;
b:1;
c:a+b;
for i from 1 thru 4000 do (if (mod(a,3)=0 and primep(a/3)) then print(a),a:b,b:c,c:a+b);

Résultat :

21 = 3x7

Conclusion : parmi les 4000 premiers nombres de Fibonacci, seul 21 est égal au triple d'un nombre premier.

Retour en haut de la page

Les nombres de Fibonacci "quatre fois premiers"

Il s'agit des nombres présents dans la suite de Fibonacci (1 1 2 3 5 8 13 etc.) et qui sont égaux à 4p, où p est un nombre premier.

La fonction mod(a,n) de Maxima renvoie le reste de la division entière de a par n (fonction modulo) : mod(a,4) vaut 0 si l'entier a est un multiple de 4.

Le programme Maxima suivant teste les 100 000 premiers nombres de Fibonnacci et affiche ceux qui sont de la forme 4p avec p premier :

a:1;
b:1;
c:a+b;
for i from 1 thru 100000 do (if (mod(a,4)=0 and primep(a/4)) then print(a),a:b,b:c,c:a+b);

Résultat :

8 = 4x2

Conclusion : parmi les 100 000 premiers nombres de Fibonacci, seul 8 est égal à 4 fois un nombre premier.

Retour en haut de la page

Les nombres de Fibonacci "cinq fois premiers"

Il s'agit des nombres présents dans la suite de Fibonacci (1 1 2 3 5 8 13 etc.) et qui sont égaux à 5p, où p est un nombre premier.

La fonction mod(a,n) de Maxima renvoie le reste de la division entière de a par n (fonction modulo) : mod(a,5) vaut 0 si l'entier a est un multiple de 5.

Le programme Maxima suivant teste les 4000 premiers nombres de Fibonnacci et affiche ceux qui sont de la forme 5p avec p premier :

a:1;
b:1;
c:a+b;
for i from 1 thru 4000 do (if (mod(a,5)=0 and primep(a/5)) then print(a),a:b,b:c,c:a+b);

Résultat :

55 = 5x11

Conclusion : parmi les 4000 premiers nombres de Fibonacci, seul 55 est égal à 5 fois un nombre premier.

Retour en haut de la page

Statistiques dans la suite de Fibonacci

Le programme Maxima suivant teste les 1000 premiers nombres de Fibonnacci et compte le nombre de nombres premiers parmi eux :

a:1$
b:1$
c:a+b$
s:0$
for i from 1 thru 1000 do (if primep(a) then s:s+1,a:b,b:c,c:a+b)$
print("Résultat :",s);

En remplaçant le test primep(a) par exemple par mod(a,3)=0 il est possible de compter le nombre de multiples de 3, ou autres.

Remarque concernant la fin de ligne des programmes Maxima :

Voici quelques résultats constatés en analysant différents critères dans la suite de Fibonacci :

Parmi les 1 000 premiers nombres de Fibonacci il y a :

Parmi les 10 000 premiers nombres de Fibonacci il y a :

Retour en haut de la page

Les nombres de Catalan

Il s'agit des nombres de la forme (2n)!/(n!*(n + 1)!).

Le programme suivant affiche dans Maxima les 100 premiers nombres de Catalan :

for n from 1 thru 100 do print((2*n)!/(n!*(n+1)!));

Résultat


1

2

5

14

42

132

429

1430

4862

16796

58786

208012

742900

2674440

9694845

35357670

129644790

477638700

1767263190

6564120420

24466267020

91482563640

343059613650

1289904147324

4861946401452

18367353072152

69533550916004

263747951750360

1002242216651368

3814986502092304

14544636039226909

55534064877048198

212336130412243110

812944042149730764

3116285494907301262

11959798385860453492

45950804324621742364

176733862787006701400

680425371729975800390

2622127042276492108820

10113918591637898134020

39044429911904443959240

150853479205085351660700

583300119592996693088040

2257117854077248073253720

8740328711533173390046320

33868773757191046886429490

131327898242169365477991900

509552245179617138054608572

1978261657756160653623774456

7684785670514316385230816156

29869166945772625950142417512

116157871455782434250553845880

451959718027953471447609509424

1759414616608818870992479875972

6852456927844873497549658464312

26700952856774851904245220912664

104088460289122304033498318812080

405944995127576985730643443367112

1583850964596120042686772779038896

6182127958584855650487080847216336

24139737743045626825711458546273312

94295850558771979787935384946380125

368479169875816659479009042713546950

1440418573150919668872489894243865350

5632681584560312734993915705849145100

22033725021956517463358552614056949950

86218923998960285726185640663701108500

337485502510215975556783793455058624700

1321422108420282270489942177190229544600

5175569924646105559418940193995065716350

20276890389709399862928998568254641025700

79463489365077377841208237632349268884500

311496878311103321137536291518809134027240

1221395654430378811828760722007962130791020

4790408930363303911328386208394864461024520

18793142726809884575211361279087545193250040

73745243611532458459690151854647329239335600

289450081175264899454283846029490767264392230

1136359577947336271931632877004667456667613940

4462290049988320482463241297506133183499654740

17526585015616776834735140517915655636396234280

68854441132780194707888052034668647142985206100

270557451039395118028642463289168566420671280440

1063353702922273835973036658043476458723103404520

4180080073556524734514695828170907458428751314320

16435314834665426797069144960762886143367590394940

64633260585762914370496637486146181462681535261000

254224158304000796523953440778841647086547372026600

1000134600800354781929399250536541864362461089950800

3935312233584004685417853572763349509774031680023800

15487357822491889407128326963778343232013931127835600

60960876535340415751462563580829648891969728907438000

239993345518077005168915776623476723006280827488229600

944973797977428207852605870454939596837230758234904050

3721443204405954385563870541379246659709506697378694300

14657929356129575437016877846657032761712954950899755100

57743358069601357782187700608042856334020731624756611000

227508830794229349661819540395688853956041682601541047340

896519947090131496687170070074100632420837521538745909320

Retour en haut de la page

Obtenir un nombre réel en haute précision

Pour afficher dans Maxima un nombre réel en haute précision (avec "beaucoup" de décimales) il faut effectuer les 3 actions suivantes :

Le programme suivant affiche par exemple les 2000 premières décimales du nombre Pi :

set_display('ascii)$
fpprec : 2000$
bfloat(%pi);

Le programme suivant affiche les 10000 premières décimales du nombre e (base du logarithme népérien) :

set_display('ascii)$
fpprec : 10000$
bfloat(%e);

Et le programme suivant affiche les 4000 premières décimales du nombre d'or :

set_display('ascii)$
fpprec : 4000$
bfloat((sqrt(5)+1)/2);

Remarque concernant la fin de ligne des programmes Maxima :

Retour en haut de la page

Téléchargement et documentation de Maxima

Maxima est un logiciel de calcul formel, totalement libre et gratuit. Il dispose de quelques capacités graphiques. Maxima est multiplateforme, et existe en version Windows et Linux.

Installer Maxima sous Windows :

Télécharger Maxima version 5.20.1 en français pour Windows

Télécharger Maxima version 5.19.1 en français pour Windows

Installer Maxima sous Linux :

Pour installer Maxima sous Linux Ubuntu, exécutez la ligne de commande suivante dans un shell en tant que root :

apt-get install maxima

Pour lancer Maxima en mode texte sous Linux exécutez la commande suivante dans un shell :

maxima

Pour quitter Maxima en mode texte sous Linux exécutez la commande suivante dans maxima :

quit();

Pour installer une interface graphique de Maxima sous Linux Ubuntu, exécutez une des commandes suivantes dans un shell en tant que root :

apt-get install xmaxima

apt-get install wxmaxima

Pour lancer Maxima en mode graphique sous Linux exécutez une des deux commandes suivantes dans un shell :

xmaxima

wxmaxima

Remarques :

 

Documents PDF pour utiliser Maxima :

Introcuction à Maxima

Decouverte de Maxima

Utilisation de Maxima au lycée

Fiche pratique Maxima

Manuel de référence de Maxima

Foire aux questions Maxima

Exemple d'utilisation de Maxima

 

 

Retour en haut de la page