-
Posts
4 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Logoett
-
-
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
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!
- 2
-
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.
-
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 ?
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
Verificar se um número é primo.
em Programação - iniciantes
Postado
@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 ?