Utilice el lenguaje C para encontrar el producto de dos números enteros grandes. Explique en detalle.
/*
Entrada de multiplicación de alta precisión: dos líneas, cada línea representa un número entero no negativo (no más de 10.000 bits)
Salida: dos producto de números.
*/
#include lt;stdio.hgt;
#include lt;string.hgt;
#include lt; stdlib.hgt;
#define MAX 10001
int bigchenfa(int *sum, int *a, int *b, int la, int lb) ?/* Multiplicación de alta precisión * /
{
int i, j, lsum = 0;
memset(suma, 0, tamaño de(suma)); p >for(i=1; ilt; = la; i) /* Usar matriz para simular operaciones*/
for(j=1, lsum= i-1; jlt;= lb; j) p>
suma[ lsum] = b[j] * a[i];
for(i=1; ilt; = lsum; i)/* redondeo*/
if (suma[i] gt;= 10)
{
if (suma [lsum] gt;= 10)
lsum;
p>suma[i 1] = suma[i] / 10
suma[i] = 10
}
return lsum; /*Devuelve el número de dígitos del producto*
}
int main(void)
{
int a[MAX]={ 0}, b[MAX]={0}, suma[MAX*2]={0};
int la=0, lb=0, lsum=0;
int i, j;
char sa[MAX], sb[MAX];
scanf("s s", sa, sb); p>
printf( "s * s = ", sa, sb);
la = strlen(sa);
lb = strlen(sb); >
for(i =1, j=la-1; ilt; = la; i, j--)
a[i] = sa[j] - '0'; p>
for( i=1, j=lb-1; ilt; = lb; i, j--)
b[i] = sb[j] - '0'; /p>
lsum = bigchenfa(suma, a, b, la, lb)
for(i=lsum; igt; 0; i--)
printf ("d", suma[ i]);
printf("\n");
sistema("pausa");
}