Dev - C++ - DIVISORES ENTEROS MATRIZ

 
Vista:
sin imagen de perfil

DIVISORES ENTEROS MATRIZ

Publicado por nino (11 intervenciones) el 14/06/2016 05:22:00
Hola necesito ayuda, tengo una matriz de 4x4 con numeros enteros, hasta aqui todo bien, pero saber como se hace lo siguiente: si la suma de los divisores de esos enteros es mayor que el numero dado en esa posicion, entonces poner una M, si la suma de los divisores enteros es menor poner una N, obviamente hacerlo con cada uno de los numeros de las posiciones de la matriz y luego imprimir una nueva matriz con los resultados con las M y N... gracias!!!!!!!!!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

DIVISORES ENTEROS MATRIZ

Publicado por agustin (522 intervenciones) el 14/06/2016 15:07:26
¿A que te refieres con la suma de los divisores? ¿Tienes que descomponer el número en sus números primos?
Por ejemplo: 500= 2 * 2 * 5 * 5 * 5
Y haces 2 + 2 + 5 + 5 + 5 = 19 = N
¿a esto te refieres?
Si es así necesitas un bucle for que vaya obteniendo el modulo y si es 0 divides por ese divisor y si no es 0 incrementas el divisor. Algo asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int n=500,i,j,primo,suma;
suma=0;
if (n>1){
   for (i=2; i <=n;i++){
      primo=1;
      for(j=2;j <i;j++){
         if(i%j==0){
            primo=0;
            break;
         }
      }
      if (primo==1 && n%i==0){
         suma += i;
         n /= i;
      }
   }
}else {
   suma += n;
}
Sí no tienes que descomponer lo y solo es sumar los divisores válidos pues basta con no dividir n y poco mas. Es que no me queda muy claro lo que quieres hacer.
La parte de los arrais te la dejo a ti.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

DIVISORES ENTEROS MATRIZ

Publicado por nino (11 intervenciones) el 14/06/2016 20:46:22
muchas gracias por la ayuda pero creo que no me di a explicar bien, a ver con un ejemplo, yo genero una matriz aleatoria, supongamos es esta
20 10
50 100
entonces necesito saber como recorrer cada una de esas posiciones y ver si la suma de sus divisores es mayor que el numero dado, por ejemplo la posicion donde esta el 20, la suma de los divisores enteros del numero 20 da 22, entonces como es mayor, en una nueva matriz poner una M, o si fueran menor poner una N, (esto en la nueva matriz,) y asi sucesivamente con cada una de las posiciones hasta recorrerlas todas y generar la nueva matriz. por ejemplo, la nueva matriz se imprimiria asi:
M N
N M

GRACIAS!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

DIVISORES ENTEROS MATRIZ

Publicado por agustin (522 intervenciones) el 15/06/2016 01:20:42
Es prácticamente lo que te puse quitando la parte de números primos, y la división para la descomposición.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int i,j,k,suma;
int numbers[2][2]={{20,10}, {30,100}};
char salida[2][2];
 
for (i=0;i <2;i++){
   for (j=0;j <2;j++){
      suma=0;
      for (k=0;k <n;k++){
         if (numbers [i][j]%k==0)
            suma += k;
      }
      if (suma > numbers [i][j])
         salida [i][j]='M';
      else
         salida [i][j]='N';
   }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

DIVISORES ENTEROS MATRIZ

Publicado por nino (11 intervenciones) el 15/06/2016 04:07:20
Gracias Agustin! eres muy amable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

DIVISORES ENTEROS MATRIZ

Publicado por nino (11 intervenciones) el 16/06/2016 19:55:16
Hola vieras que no lo consigo, de momento esto es lo que llevo.

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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
 
int matriz[2][2];
 
 
int main()
{
 
    srand(time(0));
    for (int i=0;i<2;i++)
    {
        for (int j=0;j<2;j++)
        {
            matriz[i][j]=rand();
            printf("\t%d",matriz[i][j]);
        }
      printf("\n\n");
 
    }
 
 
   return 0;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

DIVISORES ENTEROS MATRIZ

Publicado por aguml (522 intervenciones) el 17/06/2016 08:30:14
¿Has probado a añadir el código que te puse?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

DIVISORES ENTEROS MATRIZ

Publicado por nino (11 intervenciones) el 17/06/2016 15:51:46
si pero no lo logré :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

DIVISORES ENTEROS MATRIZ

Publicado por nino (11 intervenciones) el 22/06/2016 04:48:29
tienes alguna idea de como resolverlo? ya lo intente con el codigo que me diste y no pude
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dian

DIVISORES ENTEROS MATRIZ

Publicado por Dian (7 intervenciones) el 22/06/2016 05:49:11
No entiendo esa parte de "la suma de los divisores". En sí ¿Lo tienes que dividir entre?

20 entre que da 22 (más su suma).

2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

DIVISORES ENTEROS MATRIZ

Publicado por nino (11 intervenciones) el 22/06/2016 06:02:01
es esto por ejemplo los divisores del 20 son: Divisores de 20 : ±1 ±2 ±4 ±5 ±10:


"Los divisores de un número son aquellos valores que dividen al número en partes exactas. Así, dado un número a, si la división a/b es exacta (el resto es cero), entonces se dice que b es divisor de a. También se puede decir que a es divisible por b o que a es un múltiplo de b."
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar