Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
ate ajudou o problema é que so conheço português estruturado, você poderia traduzir para mim?, obrigado
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
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
rodou legal beleza, o problema é que tentei fazer o teste de mesa e não consegui ou seja não entendi nada, você pode me ajudar, obrigado!!!!!!
Vamos lá:
N,V : INTEIRO
P: CARACTERE
"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"
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.
Título do tópico editado conforme Regras do Fórum iMasters
Sai: NUMEROS PRIMOS
Entra: Números Primos
ok, me desculpe.
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.
Beleza, agora entendi. Valew
Veja se isso te ajuda:
http://forum.imasters.com.br/index.php?showtopic=249578