Ir ao conteúdo
  • Cadastre-se

Logoett

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por Logoett

  1. 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
  2. @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.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!