Os códigos para verificação de que se um número é primo, normalmente usam laços "for" e por isso
trabalham com números inteiros na variação. Acontece que existe uma limitação para a variável
inteira. Como contorno isto se desejo verificar se um número maior do que três bilhões é primo?
Por exemplo a função abaixo verifica se um número n é primo ou não.
function SeraQueSouPrimo(N: Integer): Boolean;
var
Testando: Integer;
begin
SeraQueSouPrimo := True;
for Testando := 2 to N - 1 do
if (N mod Testando) = 0 then
begin
SeraQueSouPrimo := False;
break; {jump out of the for loop}
end;
end;
Não é necessário que alguém diga que esta não é a função mais rápida.(Uso outra na prática)
Sei disso!!,apenas coloquei esta como exemplo para fixar a imagem do for variando de 2 até n-1
Como resolveria este problema?
Os matemáticos que trabalham com teoria dos números devem usar algum código para trabalhar com números extremamante grandes, mas não tenho idéia de qual seria.
Pergunta
Paulo Nobre
Os códigos para verificação de que se um número é primo, normalmente usam laços "for" e por isso
trabalham com números inteiros na variação. Acontece que existe uma limitação para a variável
inteira. Como contorno isto se desejo verificar se um número maior do que três bilhões é primo?
Por exemplo a função abaixo verifica se um número n é primo ou não.
Não é necessário que alguém diga que esta não é a função mais rápida.(Uso outra na prática)
Sei disso!!,apenas coloquei esta como exemplo para fixar a imagem do for variando de 2 até n-1
Como resolveria este problema?
Os matemáticos que trabalham com teoria dos números devem usar algum código para trabalhar com números extremamante grandes, mas não tenho idéia de qual seria.
Link para o comentário
Compartilhar em outros sites
18 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.