Ir ao conteúdo

Posts recomendados

Postado

Faça um programa que leia um número N depois imprima se ele é primo ou não.

 

Todos os códigos que eu criei haviam alguns números que não batiam. Alguem poderia ajudar a resolvar essa questão ?

  • Coordenador
Postado

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 2
Postado

@Leonardo0308

i : real
escreva("Digite um numero: ")
leia(i)
se(i mod 2 = 0) e (i = 2) e (i mod i = 0) entao
escreva("Esse Numero é primo")
fimse
se i <> 2 entao
se(i mod i = 0) e ( i mod 1 = 0) e (i mod 2 <> 0) ou (i mod 3 <> 0)  entao
escreva("Esse Numero é primo")
senao
escreva("Esse numero não é primo")
fimse
fimse

 

No caso dos números 2 e 3 eu havia criado exceções como "Se (i = 2) e (i=3) entao ...." fazendo com que o programa o considere primo, mas imagino que não seja dessa forma a resolução do exercício.

 

No momento alguns números não estão sendo encaixados como números primos e não primos. todos os múltiplos de 4 são considerados primos e alguns que eram pra ser considerados não estão sendo.

Postado

Eu sinceramente não entendi o que você tentou fazer nesse código, mas acho melhor voltarmos para a logica.

 

Seu objetivo é verificar se um numero é primo.

 

Como você sabe se um numero é primo?

 

Bem, ele deve ser divisível somente por ele mesmo e 1. Como todo numero inteiro é divisível por 1, temos que focar se ele é divisível somente por ele mesmo.

 

Como sabemos se o numero 7 é um primo? vamos ao teste de mesa.

 

7 é divisível por 6? Não.

7 é divisível por 5? Não.

7 é divisível por 4? Não.

7 é divisível por 3? Não.

7 é divisível por 2? Não.

 

Bem, se todos são não, ele é primo.

 

O numero 4 é primo? 

 

4 é divisível por 3? Não.

4 é divisível por 3? Sim.

 

Bem, se temos uma resposta positiva, ele não é um primo.

 

Sabendo disso, vamos a como fazer o código. Você já sabe como usar o "mod" então já sabe que se o resultado for igual há 0, o numero é divisível. Percebi que você não utilizou nenhum loop (laço de repetição) no seu código, mas ele será essencial para realizar esse exercício, pois cada volta do loop você irar verificar se o numero é divisível ou não.

 

Bem, com essas informações espero que você consiga refazer o seu código, caso tenha ficado alguma duvida sinta-se a vontade de pergunta :D  

 

 

  • Curtir 2
Postado
4 horas atrás, Leonardo0308 disse:

Eu sinceramente não entendi o que você tentou fazer nesse código, mas acho melhor voltarmos para a logica.

 

Seu objetivo é verificar se um numero é primo.

 

Como você sabe se um numero é primo?

 

Bem, ele deve ser divisível somente por ele mesmo e 1. Como todo numero inteiro é divisível por 1, temos que focar se ele é divisível somente por ele mesmo.

 

Como sabemos se o numero 7 é um primo? vamos ao teste de mesa.

 

7 é divisível por 6? Não.

7 é divisível por 5? Não.

7 é divisível por 4? Não.

7 é divisível por 3? Não.

7 é divisível por 2? Não.

 

Bem, se todos são não, ele é primo.

 

O numero 4 é primo? 

 

4 é divisível por 3? Não.

4 é divisível por 3? Sim.

 

Bem, se temos uma resposta positiva, ele não é um primo.

 

Sabendo disso, vamos a como fazer o código. Você já sabe como usar o "mod" então já sabe que se o resultado for igual há 0, o numero é divisível. Percebi que você não utilizou nenhum loop (laço de repetição) no seu código, mas ele será essencial para realizar esse exercício, pois cada volta do loop você irar verificar se o numero é divisível ou não.

 

Bem, com essas informações espero que você consiga refazer o seu código, caso tenha ficado alguma duvida sinta-se a vontade de pergunta :D  

 

 

 

Usando o que você falou eu consegui criar esse código:

num:real
cont:inteiro
cont2:inteiro

escreva("Digite um número:")
leia(num)
cont<-1
cont2<-0
repita
  se (cont<=num) entao
    se (num mod cont = 0 ) então
      cont2<-cont2+1
    fimse
  fimse
cont<-cont+1
até cont=num+1
se cont2=2 entao
  escreva("Esse número é primo!")
senão
  escreva("Esse número não é primo!")
fimse

 

Eu não sei se ele funciona para todos os casos, pois não sei criar um bot de repetição, mas pelo que parece está dando certo. Obrigado pela ajuda!

  • Curtir 2
  • Membro VIP
Postado

@Logoett, segue uma simplificação do teu código:

 

algoritmo "FCdH"
var
   num :inteiro
   cont :inteiro
   qtdDivisores :inteiro
inicio
   escreva("Digite um número:")
   leia(num)
   cont <- 1
   qtdDivisores <- 0
   repita
      se (num mod cont = 0) entao
         qtdDivisores <- qtdDivisores+1
      fimSe
      cont <- cont+1
   ate cont > num
   se qtdDivisores = 2 entao
      escreva("Esse número é primo!")
   senao
      escreva("Esse número não é primo!")
   fimSe
fimAlgoritmo

 

adicionado 5 minutos depois

 

Como a quantidade de loops é fixa, poderia utilizar o para/faca. Ex.:

   para cont de 1 ate num faca
      se (num mod cont = 0) entao
         qtdDivisores <- qtdDivisores+1
      fimSe
   fimPara

 

  • Curtir 1
  • Membro VIP
Postado
20 minutos atrás, Logoett disse:

@Simon Viegas

Sou novo neste fórum, é necessário que se feche o tópico ou algo do gênero após o problema estar resolvido ?

 

De um modo geral, não... apenas comentar mesmo já é suficiente.. sobretudo que as postagens podem continuar vivas... inclusive outros membros podem ir alimentando ou, o que é comum também, de achar que já está resolvido, mas não está...

 

adicionado 6 minutos depois
51 minutos atrás, Logoett disse:

Eu não sei se ele funciona para todos os casos, pois não sei criar um bot de repetição [...]

 

Aí você poderia dar uma olhada nos conceitos... veja: a repetição talvez serviria para testar os conceito, não para chegar a uma conclusão em si. 

 

O que é um número primo? por exemplo: faz sentido usar um número real?

Número negativo podem ser primos? se sim, como calcular para estes números?

 

Pesquise mais sobre o que é um número primo. Uma das ideias das propostas de problema é o conteúdo em si... "ter um código" é só um detalhe.

 

adicionado 13 minutos depois

Sobre:

51 minutos atrás, Logoett disse:

pois não sei criar um bot de repetição

 

Comece colocando o código para, por exemplo, calcular 3 números diferentes. No caso, digita um número, dar a resposta, após ler outro e dar a resposta, e mais outra e dar a resposta.

 

Outra forma, um pouco mais simples, é colocar para ficar lendo números até que o usuário digite 0.

 

Por aí vai.

 

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!