Ir para conteúdo

POWERED BY:

Arquivado

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

DaviMontalvão.

[Resolvido] Números Primos

Recommended Posts

GALERA ESTOU TENTANDO FAZER UM ALGORITMO PARA SABER SE UM NUMERO É PRIMO OU NÃO, SABEMOS QUE NUMEROS PRIMOS SÃO AQUELES NUMEROS DIVISIVEIS POR 1 E POR ELE MESMO,MAS COMO COLOCO ISSO NO PAPEL?

VALEW

Compartilhar este post


Link para o post
Compartilhar em outros sites

TENTEI FAZER MAIS AINDA NÃO ROLOU, TEM QUE FAZER ALGUNS AJUSTES.

 

 

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

SE (P= "S")ENTAO

ESCREVAL (" NUMERO PRIMO")

SENAO

ESCREVAL ("NUMERO NÃO É PRIMO")

 

 

FIMSE

FIMPARA

 

 

 

 

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O fimpara está no lugar errado.

Tente isso:

 

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
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá:

 

- Cria-se as variáveis:

N,V : INTEIRO

P: CARACTERE

 

- A mensagem "DIGITE UM NUMERO" é mostrada na tela.

 

- Voce digita algum número. Por exemplo: 9

 

- 9 é armazenado em n.

 

- P recebe "S"

 

- para v de n-1 ate 2 passo -1 faca

"v recebe 9-1 = 8; repita isso ate n chegar a 2; a cada interacao v recebe v - 1"

 

. Pronto entrou no laco, agora só sai quando n chegar a 1.

 

O resto de n "9" dividido por v "8" é 0?

Não entao pula o se

 

Faz uma interacao, agora v = 7

O resto de n "9" dividido por v "7" é 0?

Não entao pula o se

 

Faz uma interacao, agora v = 6

O resto de n "9" dividido por v "6" é 0?

Não entao pula o se

 

Faz uma interacao, agora v = 5

O resto de n "9" dividido por v "5" é 0?

Não entao pula o se

 

Faz uma interacao, agora v = 4

O resto de n "9" dividido por v "4" é 0?

Não entao pula o se

 

Faz uma interacao, agora v = 3

O resto de n "9" dividido por v "3" é 0?

Sim, entao executa o se

P recebe "N"

 

Faz uma interacao, agora v = 2

O resto de n "9" dividido por v "2" é 0?

Não entao pula o se

 

Faz a próxima interacao e sai do laco.

 

P é igual a "S"?

Não, então pula o se e executa o senão.

Mostra na tela:

"NUMERO NÃO É PRIMO"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade no caso você pega o numero 9 e faz a condição perguntando se o resto da divisão com o 8,7,6,5,4,3,2 é igual a zero, ate ai entendi, mas por que ele no laço tem que receber o 9-1 sendo que o passo -1 ja faz esse serviço?, valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquele n-1 é executado somente uma vez.

A variável v é iniciada com esse valor, ou seja, no exemplo 9-1=8.

O passo -1 é executado a cada volta do laco, ele executa isso: v <- v - 1 a cada interacão.

 

Porque a inicializacão de v é 8 "n-1" e não 9 "n"?

Porque n é divisível por n e disso já sabemos o que precisa ser testado é se tem algum número menor que n que divida n sem sobrar resto.

 

 

Kandrade no caso você pega o numero 9 e faz a condição perguntando se o resto da divisão com o 8,7,6,5,4,3,2 é igual a zero, ate ai entendi, mas por que ele no laço tem que receber o 9-1 sendo que o passo -1 ja faz esse serviço?, valeu.

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.