Cuestiones intermedias en cirugía plástica
int gb(int*, int); devuelve el mínimo común múltiplo. demasiado tiempo. Tenga paciencia para ejecutar el programa en todas partes.
Porque estoy constantemente haciendo un bucle +1 -1 para encontrar la convención de múltiplos comunes. La teoría se puede encontrar, pero es muy lenta. Si no está satisfecho, sólo puede ver si otros expertos pueden proporcionar mejores algoritmos.
Como se muestra en la imagen, solo ejecuté el denominador común. Si no desea que se ejecute automáticamente en el bucle, simplemente comente las dos declaraciones goto.
#incluye & ltstdio.h & gt
#incluye & ltstdlib.h & gt
#incluye & lttime.h & gt
#¿Definición? número de tamaño? ¿Cinco
int? gy(int*,int,int?*);
int? gb(int*, int);
int? principal()
{
int? a[numsize], I, *p, mgy[10], mgb=0, *gyp, size
p = a;
gyp = mgy
aa:? srand(tiempo(NULL));
for(I = 0;i<5;i++)
a[I]=(int)rand();
Printf("Generar número aleatorio:\ n ");
for(I = 0;i<numsizei++)
{
printf(" %d\n ", a[I]);
}
tamaño=gy(p, numsize, gyp);
if (tamaño == 0) p>
{
Printf("Sin denominador común\ n ");
¿ir a? aa;
}
Otros
{
Printf("El máximo común divisor es:");
for(I = 0;i<size;i++)
printf("%d?",mgy[I]);
}
bb: ? for(I = 0;i<5;i++)
a[I]=(int)rand();
Printf("Generar número aleatorio:\ n "); p>
for(I = 0;i<numsizei++)
{
printf("%d\n ",a[I]);
}
mgb=gb(p,numsize);
if (mgb==0)
{
Printf("No múltiplo común\ n ");
ir a? bb;
}
Otros
{
Printf("El mínimo común múltiplo es: %d\n ",mgb) ;
}
}
int? gy(int?*p, int?tamaño,int?*sp)
{
int? min=p[0],I,flog,count=0;
for(I=1;i<size;i++)
{
si(p [I]<mínimo)
{
min = p[I];
}
}
mientras(min>1)
{
flog = 1;
for(I = 0; i< tamaño ;i++)
{
if(p[i]%min!=0)
{
flog = 0;
Romper;
}
}
if(flog==1)
{
* sp = min
sp++;
cuenta++;
}
min-;
}
¿Devolver? Contar;
}
int? gb(int?*p, int? tamaño)
{
int? max=p[0],I,flog,mgb=0;
for(I=1;i<size;i++)
{
si(p [I]& gt;max)
{
max = p[I];
}
}
mientras(1)
{
flog = 1;
for(I = 0; i<size;i++)
{
Si (max?%?p[i]!=0)
{
flog = 0;
Romper;
}
}
if(flog==1)
{
mgb = max p>
Romper;
}
max++;
}
¿Regresar? mgb
}