Ir para conteúdo
Fórum Script Brasil
  • 0

Código Errado! (Resolvido)


Paulo Nobre

Pergunta

Alguém poderia me dizer onde está o erro do código abaixo?

procedure TForm1.Button1Click(Sender: TObject);

Var

n:Integer;

i: Integer;

R: Integer;

CC: Integer;

Mensagem: String;

begin

CC:=0;

n:= StrToInt(edit1.Text);

Mensagem:= 'O número ' + IntToStr(n)+' não é primo !' ;

For i:= 2 to n - 1 do

begin

R:= n div i;

If (R = 0) Then CC := CC + 1;

end;

If CC = 0 Then MessageBox(handle,PChar(Mensagem),'AVISO',MB_IconInformation);

end;

estou tentando escrever um código para descobrir se um valor digitado n é primo.

Acontece que para qualquer n a mensagem que aparece é que n não é primo.

Esta ocorrendo um erro que não sei por que. A variavel CC não é incrementada e por isso sempre aparece a mensagem de que não é primo, pois CC sempre esta igual a zero.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá Paulo,

tenta esse:

function IntPrime(Value: Integer): Boolean;
var
  i : integer;
begin
  Result := False;
  Value := Abs(Value);
  if Value mod 2 <> 0 then begin
     i := 1;
     repeat
     i := i + 2;
     Result:= Value mod i = 0
     until Result or ( i > Trunc(sqrt(Value)) );
     Result:= not Result;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IntPrime(StrToInt(Edit1.text)) then ShowMessage('É PRIMO!!!')
  else ShowMessage('NÃO É PRIMO!!!');
end;

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...