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