Ir ao conteúdo
  • Cadastre-se
Braga03

Pascal Mostrar a quantidade de numeros primos

Posts recomendados

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

     @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

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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...

 

javaweb-popup.jpg

CURSO ONLINE DE PROGRAMAÇÃO
FULL STACK

Entre para o mercado que paga mais de R$ 12.000 por mês e não tem crise!

CLIQUE AQUI E INSCREVA-SE AGORA MESMO!