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

Lunes 7 de Marzo de 2005 a las 22:00 hrs

Suma de muchos primos

Se dice que un número entero positivo es primo si tiene exactamente dos divisores positivos distintos. Los números primos más pequeños son 2, 3, 5, 7 y 11. Además, y sólo para esta tarea, consideraremos que el número 1 también es primo. Dado un número entero m podemos escribirlo como suma de primos tan grandes como sea posible. Por ejemplo, si m = 10 lo podemos escribir como 7+3 (porque 7 es el primo más grande menor o igual a 10 y luego 3 es primo) y si m = 27 lo podemos escribir como 23 + 3 + 1 (porque 23 es el primo más grande menor o igual a 27, luego 3 es el primo más grande menor o igual a lo que sobra y luego sobra 1).

Especificación

La entrada consiste de un entero m que tendrá un valor entre 1 y 2,000,000,000. La salida consiste de una lista de números primos escritos en orden descendiente, que sumen m y separados por espacios. El nombre de tu programa deberá ser sumampNN.c, donde NN es el número de equipo que les fue asignado. Los archivos sumampNN.o y sumampNN.exe no deben ser entregados. Notas: (a) Su programa no deberá leer ni escribir nada además de los datos mencionados. (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 sumampNN.c -o sumamp y para probarlo usen la instrucción ./sumamp y tecleen la entrada deseada seguida de un enter.

Ejemplos

ENTRADA: 10     ENTRADA: 27
SALIDA:  7 3    SALIDA:  23 3 1