Introducción a la Programación
Trimestre 2005 Primavera --- Tarea 4

Martes 7 de junio de 2005 a las 22:00 hrs

Parejas disparejas

Si m y n son dos números enteros positivos, decimos que m divide a n si n es un múltiplo de m. Por ejemplo, 1, 2, 3 y 6 dividen a 6, pero ni 4, ni 5 ni 7 dividen a 6. Definamos la función s(n) como la suma de todos los divisores de n (excepto n). Por ejemplo, s(6)=1+2+3=6, s(9)=1+3=4 y s(12)=1+2+3+4+6=16. Considere dos números enteros positivos m y n. Si s(m) = n y s(n) = m decimos que m y n son una pareja perfecta (tipo 0). En caso contrario tenemos otras dos opciones: Si s(m) <= n y s(n) <= m decimos que m y n son una pareja defectuosa (tipo 1). Si s(m) >= n y s(n) >= m decimos que m y n son una pareja afectuosa (tipo 2). Finalmente, si no se cumple ninguna de estas condiciones, decimos que m y n son una pareja dispareja (tipo 3). Dados dos números m y n debes decidir que tipos de parejas son (m,n), (m,m) y (n,n). Por ejemplo, si m = 6 y n = 12 entonces (6,12) es una pareja dispareja, (6,6) es una pareja perfecta y (12,12) es una pareja afectuosa.

Especificación

La entrada consiste de dos números enteros m y n en ese orden, separados por un espacio, donde 0 < m, n < 1,000,000. La salida consiste de tres números p, q y r del conjunto {0,1,2,3} separados por espacios, representando cada uno de ellos el tipo de las parejas (m,n), (m,m) y (n,n), respectivamente. El nombre de su programa deberá ser parejaNN.c, donde NN es el número de equipo que les fue asignado. Los archivos parejaNN.o y parejaNN.exe no deben ser entregados. Notas: (a) Su programa no deberá leer ni escribir nada además de los datos mencionados anteriormente. (b) Su programa no deberá usar nada que no hayamos visto en clase. (c) Para compilar su programa en UNIX usen la instrucción gcc parejaNN.c -o pareja y para probarlo usen la instrucción ./pareja y tecleen la entrada deseada seguida de un enter.

Ejemplo

ENTRADA: 6 12
SALIDA:  3 0 2