Matlab - Ciclos for encadenados; numero primo

 
Vista:
sin imagen de perfil

Ciclos for encadenados; numero primo

Publicado por Miguel (1 intervención) el 07/02/2015 14:34:45
Hola buenas intento hacer un ejercicio que nos propusieron en clase pero no consigo obtener resultados congruentes :(

El enunciado pide que se introduzca un número natural y hacer que el programa vaya número por número comprobando qué cifra hay que sumarle a cada uno para que genere la secuencia de números primos hasta ese número natural. Yo lo hice de la siguiente forma:



n = input('Introduce el numero de naturales que quieres comprobar:') ;
pr = primes(n);

for i=1:n
disp (sprintf(' %d ---->' , i))
for a=1:n
for b=1:n
m = pr(b)

if i+a == m
disp (sprintf('%d',a))


end
end
end
end

Tras ejecutar me da el primer valor válido de a, pero después me produce un error
"m = pr(b)
!--error 21
Índice inválido.
at line 10".


Llevo ya dos días con este problema y ya estoy completamente atascado y sin ideas... Agradezco de antemano cualquier ayuda :)
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
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ciclos for encadenados; numero primo

Publicado por Dave (1094 intervenciones) el 08/02/2015 09:17:46
Hola Miguel;

Una opción podría ser a través del siguiente código.

1
2
3
4
5
6
7
8
9
10
11
n = 100;
pr = primes(n);
 
for i=1:n
    agregar = pr(end) - i;
    if agregar>=0
        disp(sprintf(' Para %d ----> debe agregar/sumar %d' , i,agregar))
    else
        disp(sprintf(' Para %d ----> debe agregar/sumar %d' , i,0))
    end
end

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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