C'est Michael KEITH qui a defini ces nombres en 1987, Ces nombres de KEITH sont aussi apples les Repfigits,(mot obtenu a partir de la contraction des mots repetitive Fibonacci-like digit.
Code source :
///Auteur : Mohamed Karara #include <stdio.h> #include <stdlib.h> int nob_de_chef(int nbre) { int m; if(nbre>=10&&nbre<100)m=2; else if(nbre>=100&&nbre<1000)m=3; else if(nbre>=1000&&nbre<10000)m=4; return m; } void ch_to_nob(int nbre,int *t,int m) { int i; for(i=m-1;i>=0;i--) { t[i]=nbre%10; nbre/=10; } } void aff(int nbre,int *p,int n) { int i,s; ///AJOUT printf("%d :",nbre); for(i=0;i<n;i++) { printf("%d ",p[i]); } //////////////////////////// do { s=0; for(i=0;i<n;i++) { s+=p[i]; } //AND printf("%d ",s); for(i=0;i<n-1;i++) { p[i]=p[i+1]; p[i+1]=s; } }while(s<nbre); printf("\n"); } int somme(int nbre,int *p,int n) { int i,s; do { s=0; for(i=0;i<n;i++) { s+=p[i]; } for(i=0;i<n-1;i++) { p[i]=p[i+1]; p[i+1]=s; } }while(s<nbre); /// printf("%d\n",s); if(s==nbre) return 1; return 0; } void setnobre() { int nbre[10],i,j,n,m; do { printf("Nombre de Chiffre (2,3,4) :"); scanf("%d",&n); } while(n<2||n>4); switch(n) { case 2:m=100; break; case 3:m=1000; break; case 4:m=10000; } for(i=10;i<m;i++) { ch_to_nob(i,nbre,nob_de_chef(i)); if(somme(i,nbre,nob_de_chef(i))) { /// printf("%d\n",i); ch_to_nob(i,nbre,nob_de_chef(i)); aff(i,nbre,nob_de_chef(i)); } } } int main() { setnobre(); return 0; }