no inspeccioné tu código. explica qué es lo que crees que hace mal, y ahí puedo intentar ayudar.
* compila? qué mensaje de error tira?
* al ejecutarse se "rompe"? qué mensaje de error tira?
* se ejecuta, pero los valores que devuelve no son los esperados? por ejemplo?
Hola Luis! Mirá, cuando pongo varios números, por ejemplo: , me arroja como salida:
Pienso que el problema está en el de la línea 25, y dado que el elemento nuevo es el , puede ser que mi confusión esté ahí. Es como que no llega nunca a reproducir ese , como que nunca llega a encontrar que , cuando y primo está incializada tal que , así que no sé.
Vuelvo a subir el código actualizado a como lo tengo ahora, que por las dudas cambié los nombres a las variables del programa principal respecto a las del (le cambié una letra a cada una) por las dudas:
observa la línea 13. en ese procedimiento las variables numero y factor son constantes. así que en esa iteración estás asignando siempre el mismo valor a proc. dudo que fuera eso lo que deseabas, así que te sugiero que revises esa línea.
si sigues con problemas, intenta descubrir si las variables que te interesan van tomando los valores que crees que deben tomar, colocando WRITEs en lugares del código adecuados (luego de asignaciones claves, al entrar a las iteraciones o subprogramas, etc); una vez detectado el problema y corregido, debes eliminar esos WRITEs temporarios que usaste para debugear (o como se diga en español).