Nothing Special   »   [go: up one dir, main page]

Nombres de Keith

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Nombres de Keith.

On appelle nombre de Keith un nombre K de n chiffres ayant la proprit suivante:


en partant des nombres composs chacun d'un des n chiffres de K, on compose une sorte de suite de
Fibonacci en calculant la somme des n derniers nombres de la suite pour dterminer le suivant. Si cette
suite fournit un moment le nombre K, ce nombre est dit nombre de Keith.

Exemple: K=197
1,9,7,17(=1+9+7),33(=9+7+17),57(=7+17+33),107(=17+33+57),197(=33+57+107)

Note: les calculs peuvent tre acclrs par ak = 2ak-1 - ak-n-1

Vous pouvez charger une version Delphi de la recherche des nombres de Keith en cliquant ici

No. chiffres Nombres de Keith


2 14, 19, 28, 47, 61, 75
3 197, 742
4 1104, 1537, 2208, 2580, 3684, 4788, 7385, 7647, 7909
5 31331, 34285, 34348, 55604, 62662, 86935, 93993
6 120284, 129106, 147640, 156146, 174680, 183186, 298320, 355419, 694280, 925993
7 1084051, 7913837
8 11436171, 33445755, 44121607
9 129572008, 251133297
10 aucun
11 24769286411, 96189170155
12 171570159070, 202366307758, 239143607789, 296658839738
13 1934197506555, 8756963649152
14 43520999798747, 74596893730427, 97295849958669
15 120984833091531, 270585509032586, 754788753590897
16 3621344088074041, 3756915124022254, 4362827422508274
11812665388886672, 14508137312404344, 16402582054271374, 69953250322018194,
17
73583709853303061
18 119115440241433462, 166308721919462318, 301273478581322148
1362353777290081176, 3389041747878384662, 5710594497265802190, 5776750370944624064,
19
6195637556095764016

entier i,N,K,j,S,Sav
tableau Ti i=1,..,4 de entier
pour i de 10 1000 faire
N 1+[log10i]
K i
S 0
pour j de 1 N faire
TN-j+1 K mod 10
S S+TN-j+1K K\10
fpour
K N+1
Sav T1+(K-1) mod N
T1+(K-1) mod N S
tant que NOT (S i) faire
S 2*S-Sav
K K+1
Sav T1+(K-1) mod N
T1+(K-1) mod N S
ftant
si S=i alors crire i,"est un nombre de Keith"
fsi
fpour

ou dans une version moins optimise


entier i,K,j,N,S
tableau Ti i=1,..,4 de entier
pour i de 10 1000 faire
K i
N 0
tant que NOT (K=0) faire
N N +1
TN K mod 10
K K\10
ftant
pour j de 1 N\2 faire
Tmp Tj
Tj TN-j+1
TN-j+1 Tj
fpour
S 0
pour j de 1 N faire
S S+Tj
fpour
tant que NOT (S i) faire
pour j de 1 N\2 faire
Tmp Tj
Tj TN-j+1
TN-j+1 Tj
fpour
TN S
S 0
pour j de 1 N faire
S S+Tj
fpour
ftant
si S=i alors crire i,"est un nombre de Keith"
fsi
fpour

ou dans une version avec procdures/fonctions

type tabl=tableaui i=1,..,4 de entier

procdure Chiffres( i, T, N) Stocke les chiffres de i dans T


paramtres: i,N:entier
T: Tabl
N 0
tant que NOT (i=0) faire
N N +1
TN i mod 10
i i\10
ftant
fproc

fonction Somme(T,N) Calcule la somme des N lmnts de T


paramtres: T: Tabl
N: entier
valeur: entier
entier: S,i
S 0
pour i de 1 N faire
S S+Ti
fpour
rsultat(S)

procdure Inverse(T, N) Inverse l'ordre des lmnts de T


paramtres: T: Tabl
N: entier
entier: i,j,Tmp
pour i de 1 N\2 faire
Tmp Ti
Ti TN-i+1
TN-i+1 Ti
fpour
fproc

procdure ShiftGauche(T, N, k) Dplace tous les lmnts de T de k cases


paramtres: T: Tabl
N,k: entier
entier: i,j,Tmp
pour i de 1 k faire
Tmp T1
pour j de 1 N-1 faire
Tj Tj+1
fpour
TN T1
fpour
fproc

entier i,S
tabl: T
pour i de 10 1000 faire
Chiffres(i,T,N)
Inverse(T,N)
S Somme(T,N)
tant que NOT (S i) faire
ShiftGauche(T,N,1)
TN S
S Somme(T,N)
ftant
si S=i alors crire i,"est un nombre de Keith"
fsi
fpour

Page prcdente.
Page d'accueil.

Vous aimerez peut-être aussi