Ir ao conteúdo

Posts recomendados

Postado

ola pessoal, estou com um problema em um codigo, o que deve ser feito no programa é o seguinte: 

Receber 10 numeros inteiros e mostrar a quantidade de numeros primos.

Bom, eu fiz esse codigo e infelizmente nao funcionou e nao faço a menor ideia do porque. Se alguem puder me ajudar, ficarei grato!

Program Pzim;
var n, i, j, qtd, qtdprimo: integer;

Begin
 
   for i:= 1 to 10 do
	  begin
	   writeln ('digite um numero');
	   readln (n);
	  for j:= 1 to n do
	   begin
	    if (n mod j = 0)  then qtd:= qtd + 1;
	  end;
	 if qtd = 2 then qtdprimo:= qtdprimo+1;
	 end;
	 
	 writeln('a quantidade de numeros primos ',qtdprimo);
	 readkey;
	 	  
End.

 

  • Amei 1
  • Membro VIP
Postado

Sobre:

1 hora atrás, Braga03 disse:

Bom, eu fiz esse codigo e infelizmente nao funcionou e nao faço a menor ideia do porque. Se alguem puder me ajudar, ficarei grato!

 

No caso, seria bom repassar "o quê não funcionou". Fazendo analogias, seria como levar um carro no mecânico e apenas dizer "meu carro está com um problema"... ou ir no médico e apenas dizer "estou com dor".. entende?

 

Então, não sei exatamente qual problema você se refere, mas um possível ponto é que falta reinicializar o valor de qtd para cada loop... pois está acumulando de um número para outro.

 

ADENDO:
Uma dica: primeiro calcule para apenas um número. Tenha uma boa base que está verificando corretamente. Após funcionar, aí tenta com 2 ou 3... não precisa tentar com 10! funcionando com mais de um, tente a funcionar com qualquer quantidade... só que é bem mais fácil testar com menos.

 

adicionado 1 minuto depois

*tende a funcionar...

  • Curtir 1
Postado

     @Braga03      seu código está bom , ficou faltando apenas inicializar a variável qtd , antes de entrar no segundo loop , 

readln (n);
qtd := 0;
for j:= 1 to n do
begin
  if (n mod j = 0)  then qtd := qtd + 1;
end;

 

  • Curtir 1
Postado

 

Em 21/05/2020 às 13:34, devair1010 disse:

     @Braga03      seu código está bom , ficou faltando apenas inicializar a variável qtd , antes de entrar no segundo loop , 


readln (n);
qtd := 0;
for j:= 1 to n do
begin
  if (n mod j = 0)  then qtd := qtd + 1;
end;

 

Obrigado, esqueci de agradecer antes, me desculpe. O problema era esse mesmo.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!