- Entrou
- Dez 5, 2009
- Mensagens
- 1
- Gostos Recebidos
- 0
Boa tarde,
Pretendo criar um programa que confira se um numero é primo ou nao e que guarde para uma matriz todos os numero primos encontrados ate ao numero inserido pelo utilizador.
"Os números primos são apenas divisíveis por eles próprios e pela unidade. Neste projecto pretende-se determinar todos os números primos menores ou igual a N a partir de uma rotina em MatLab.
Como “INPUT” será dado o valor de N, com N > 2, e como “OUTPUT” os números primos até N. Para a resolução deste problema será necessário utilizar a função “MOD” predefinida no MatLab, que determina o resto da divisão de dois números
mod(X,Y) -> resto da divisao de X/Y
O número natural A é primo se mod (A,B) diferente de zero, para todos os números naturais B, superiores à unidade e menores que A, isto é. 1<B<A"
Abaixo deixo o algoritmo que ja tentei mais ou menos fazer, contudo nao entendo o problema que tem o meu algortimo pois qualquer numero que coloque me dá que não é primo =/.
%bloco limpeza
clear all
clc
%bloco de iniciaçao
n=input('insira o numero inteiro, N, desejado: ');
if n<2;
error (' o valor inserido nao é o apropriado');
end
%bloco do numero primo
if mod(n,1)~=0;
error ('impossivel calcular')
end
k=n
b(2,n)
for i=2,n;
for a=2,i-1;
if mod(i,a)~=0;
disp(['este numero é primo ']);
v=b(2,n) %tentativa de guardar os numeros primos numa matriz
else mod(i,a)==0;
disp (['este numero nao é primo ']);
end
end
end
Ajudem-me por favor.
Obrigada,
acatarinac
Pretendo criar um programa que confira se um numero é primo ou nao e que guarde para uma matriz todos os numero primos encontrados ate ao numero inserido pelo utilizador.
"Os números primos são apenas divisíveis por eles próprios e pela unidade. Neste projecto pretende-se determinar todos os números primos menores ou igual a N a partir de uma rotina em MatLab.
Como “INPUT” será dado o valor de N, com N > 2, e como “OUTPUT” os números primos até N. Para a resolução deste problema será necessário utilizar a função “MOD” predefinida no MatLab, que determina o resto da divisão de dois números
mod(X,Y) -> resto da divisao de X/Y
O número natural A é primo se mod (A,B) diferente de zero, para todos os números naturais B, superiores à unidade e menores que A, isto é. 1<B<A"
Abaixo deixo o algoritmo que ja tentei mais ou menos fazer, contudo nao entendo o problema que tem o meu algortimo pois qualquer numero que coloque me dá que não é primo =/.
%bloco limpeza
clear all
clc
%bloco de iniciaçao
n=input('insira o numero inteiro, N, desejado: ');
if n<2;
error (' o valor inserido nao é o apropriado');
end
%bloco do numero primo
if mod(n,1)~=0;
error ('impossivel calcular')
end
k=n
b(2,n)
for i=2,n;
for a=2,i-1;
if mod(i,a)~=0;
disp(['este numero é primo ']);
v=b(2,n) %tentativa de guardar os numeros primos numa matriz
else mod(i,a)==0;
disp (['este numero nao é primo ']);
end
end
end
Ajudem-me por favor.
Obrigada,
acatarinac