1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| // #include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int longueur(int x);
int decompose(int M, int a);
int kaprekar(int n1, int nbch, int *adr);
int main(int kap, int nbch)
{
int nb=0, tab[2]={0,0}, *p=NULL;
printf("Nb de Kaprekar");
printf("\nEntrez un nombre entier:");
scanf("%d",&nb);
p=&tab[0];
kaprekar(nb, nbch, p);
// printf("\nVotre nombre au carre vaut : %d\n",kapcar);
// printf("\nVotre nombre au carre est compose de %d chiffre(s)\n",a);
// printf("\nLa partie de gauche M2=%d et la partie de droite M1=%d\n",M2, M1);
if(kap==nb)
printf("\nVotre nombre est un nombre de Kaprekar\n");
else
printf("\nVotre nombre n'est pas un nombre de Kaprekar\n");
system("PAUSE");
return 0;
}
int longueur(int x)
{
int nbch=0;
while(x!=0)
{
x = x/10;
nbch=nbch+1;
}
return nbch;
}
int decompose(int M, int place)
{
int a=0, M2=0, M1=0, tab[2];
a=pow(10,place);
tab[0]=M2=M/a;
tab[1]=M1=M%a;
return *tab;
}
int kaprekar(int n1, int nbch, int *adr)
{
int kapcar=0, n=0, kap=0, *tab;
kapcar=n1*n1;
longueur(kapcar);
if(nbch%2==0)
n=nbch/2;
else
n=(nbch/2)+1;
decompose(kapcar, n);
tab=&tab[0];
kap=tab[0];
tab=&tab[1];
kap=kap+tab[1];
return kap;
} |
Partager