Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Rodrigues Torre

[Resolvido] Maior primo

Recommended Posts

Faça um algoritmo para ler um número natural N e calcular o maior número primo menor do que o número N.

 

Não sei se já postei aqui

 

Eu não sei como calcular o mair numero primo maior do que N

 

Aqui esta o algoritmo

E ele esta cheio de erros

 

 

algoritmo "maior primo"

// Função :

// Autor : Gustavo Rodrigues Torre

// Data : 11/10/2007

// Seção de Declarações

var

i,x : inteiro

a,c,p,n : inteiro

inicio

// Seção de Comandos

c <- 0

escreva ("Digite um número ")

leia(n)

para c de 1 ate n faca

// Esta parte calcula se um numero é primo...

p <- 0

para x de 2 ate c-1 faca

se (c % x = 0) entao

// Se passou por aqui e pq nao é primo

p <- p + 1

fimse

fimpara

fimpara

 

escreval(p)

 

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para calcular o maior primo menor que N

Poderia fazer assim:

 

- Faca um loop de N-1 até 2, ou seja, vamos testar os primos de N-1 pra trás até chegar num número primo.

 

Teve um colega que já usou isso, veja:

http://forum.imasters.com.br/index.php?showtopic=258373

 

 

O teste precisa de outro loop, voce já fez o teste pra ver se um número é primo.

Achando o primeiro primo o loop principal deve ser encerrado e o número encontrado exibido.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem o algoritmo eu copiei agora nao sei como achar o maior primo maior do que n

 

algoritmo "semnome"

// Função :

// Autor :

// Data : 16/11/2007

// Seção de Declarações

var

N,V : INTEIRO

P: CARACTERE

inicio

 

ESCREVAL ("DIGITE UM NUMERO")

LEIA (N)

P <- "S"

 

PARA V DE N-1 ATE 2 PASSO -1 FACA

SE (N MOD V = 0)ENTAO

P<- "N"

FIMSE

FIMPARA

 

SE (P= "S")ENTAO

ESCREVAL (" NUMERO PRIMO")

SENAO

ESCREVAL ("NUMERO NÃO É PRIMO")

FIMSE

 

para v de N-1 ate 2 passo 1 faca

//aqui vai uma condicao para achar o maior?

fimpara

 

 

fimalgoritmo

 

 

 

Para calcular o maior primo menor que N

Poderia fazer assim:

 

- Faca um loop de N-1 até 2, ou seja, vamos testar os primos de N-1 pra trás até chegar num número primo.

 

Teve um colega que já usou isso, veja:

http://forum.imasters.com.br/index.php?showtopic=258373

 

 

O teste precisa de outro loop, voce já fez o teste pra ver se um número é primo.

Achando o primeiro primo o loop principal deve ser encerrado e o número encontrado exibido.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Siga a dica.

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 16/11/2007
// Seção de Declarações
var
N,V : INTEIRO
P: CARACTERE
inicio

ESCREVAL ("DIGITE UM NUMERO")
LEIA (N)
P <- "S"

PARA V DE N-1 ATE 2 PASSO -1 FACA
   SE (N MOD V = 0)ENTAO
      // a primeira vez que entrar aqui guarde o valor de v e interrompa o laco
   FIMSE
FIMPARA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria assim?

 

algoritmo "semnome"

// Função :

// Autor :

// Data : 16/11/2007

// Seção de Declarações

var

N,V : INTEIRO

P: CARACTERE

inicio

 

escreval("DIGITE UM NUMERO")

leia(N)

P <- "S"

 

para V de N-1 ate 2 passo -1 faca

se (N MOD V = 0) entao

P<- "N"

leia(v)

interrompa

fimse

fimpara

 

se (P= "S") entao

escreval (" NUMERO PRIMO")

senao

escreval ("NUMERO NÃO É PRIMO")

fimse

 

para v de N-1 ate 2 passo 1 faca

//aqui vai uma condicao para achar o maior?

fimpara

 

 

fimalgoritmo

 

 

Siga a dica.

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 16/11/2007
// Seção de Declarações
var
N,V : INTEIRO
P: CARACTERE
inicio

ESCREVAL ("DIGITE UM NUMERO")
LEIA (N)
P <- "S"

PARA V DE N-1 ATE 2 PASSO -1 FACA
   SE (N MOD V = 0)ENTAO
      // a primeira vez que entrar aqui guarde o valor de v e interrompa o laco
   FIMSE
FIMPARA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

para V de N-1 ate 2 passo -1 faca
   para i de 2 ate (V-1) faca
	  se (V MOD i = 0) entao
		 P<- "N" 
		//leia(v) pra que ler v? ele está sendo incrementado no laco
		 interrompa
	  fimse
   fimpara

   se (P= "S") entao
	  escreval (" O ultimo primo menor que n eh: ", V)
	  interrompa
   fimse

fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

O algoritmo rodou mas não me mostrou a mensagem dizendo se e primo ou não

E não me mostrou o mair valor maior

 

Tente assim:

 

para V de N-1 ate 2 passo -1 faca
   para i de 2 ate (V-1) faca
	  se (V MOD i = 0) entao
		 P<- "N" 
		//leia(v) pra que ler v? ele está sendo incrementado no laco
		 interrompa
	  fimse
   fimpara

   se (P= "S") entao
	  escreval (" O ultimo primo menor que n eh: ", V)
	  interrompa
   fimse

fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

para V de N-1 ate 2 passo -1 faca
   P <- "S"
   para i de 2 ate (V-1) faca
	  se (V MOD i = 0) entao
		 P<- "N" 
		//leia(v) pra que ler v? ele está sendo incrementado no laco
		 interrompa
	  fimse
   fimpara

   se (P= "S") entao
	  escreval (" O ultimo primo menor que n eh: ", V)
	  interrompa
   fimse

fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua não me mostrando o maior primo e a mensagem dizendo se e primo ou não

 

Tente assim:

 

para V de N-1 ate 2 passo -1 faca
   P <- "S"
   para i de 2 ate (V-1) faca
	  se (V MOD i = 0) entao
		 P<- "N" 
		//leia(v) pra que ler v? ele está sendo incrementado no laco
		 interrompa
	  fimse
   fimpara

   se (P= "S") entao
	  escreval (" O ultimo primo menor que n eh: ", V)
	  interrompa
   fimse

fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora funcinou

Eu não tinha declarado a variavel i

 

algoritmo "semnome"

// Função :

// Autor :

// Data : 16/11/2007

// Seção de Declarações

var

N,V,i : INTEIRO

P: CARACTERE

inicio

 

escreval("DIGITE UM NUMERO")

leia(N)

 

P <- "S"

 

para V de N-1 ate 2 passo -1 faca

P <- "S"

para i de 2 ate (V-1) faca

se (V MOD i = 0) entao

P<- "N"

//leia(v) pra que ler v? ele está sendo incrementado no laco

interrompa

fimse

fimpara

 

se (P= "S") entao

escreval (" O ultimo primo menor que n eh: ", V)

interrompa

fimse

 

fimpara

 

fimalgoritmo

 

 

 

 

O algoritmo não pede pra mostrar mensagem se é ou não primo.

 

Faça um teste passo-a-passo e veja o que está errado.

Qual entrada colocou?

 

Funcionou mais tem um pequeno erro

Ele não considera 2 como primo

Como resolver isto?

 

Agora funcinou

Eu não tinha declarado a variavel i

 

algoritmo "semnome"

// Função :

// Autor :

// Data : 16/11/2007

// Seção de Declarações

var

N,V,i : INTEIRO

P: CARACTERE

inicio

 

escreval("DIGITE UM NUMERO")

leia(N)

 

P <- "S"

 

para V de N-1 ate 2 passo -1 faca

P <- "S"

para i de 2 ate (V-1) faca

se (V MOD i = 0) entao

P<- "N"

//leia(v) pra que ler v? ele está sendo incrementado no laco

interrompa

fimse

fimpara

 

se (P= "S") entao

escreval (" O ultimo primo menor que n eh: ", V)

interrompa

fimse

 

fimpara

 

fimalgoritmo

 

 

 

 

O algoritmo não pede pra mostrar mensagem se é ou não primo.

 

Faça um teste passo-a-passo e veja o que está errado.

Qual entrada colocou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.