Ir para conteúdo
Fórum Script Brasil
  • 0

Desafio básico 2 (par e primo - ondem crescente)


Thiago André Cardoso

Pergunta

Escreva um algoritmo que imprima na tela os 10 primeiros números pares e os 10 primeiros números primos, isso em ordem crescente.

Exemplo: 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17...

Quem quiser aprender esses e outros algoritmo segue em anexo o contato.

Abraços a todos.

Cartão Curso.001.jpeg

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Legal esse desafio, investi algumas horas pra desenvolver a logica...

O algoritmo que estou postando foi escrito no VisuAlg 3.0...

Espero receber criticas construtivas sobre formas alternativas ou mais eficientes de como desenvolver a logica, como organizar melhor o algoritmo, como fazer comentarios melhores e etc... as criticas construtivas serao bem-vindas... valeu!

 

	/////////////////////////////////////////////////////////////////////////////
// Desafio base 2, postado no site: www.scriptbrasil.com.br
// Objetivo: Imprimir na saida, em ordem cresccente, os 10 primeiros numeros
// pares e os 10 primeiros numeros primos a partir de 1.
// por ThiagoD
/////////////////////////////////////////////////////////////////////////////
algoritmo "Pares_e_Primos"
var
   PARES : vetor[0..9] de inteiro
   PRIMOS : vetor[0..9] de inteiro
   A,B,NUM,D,F,X : inteiro
inicio
   NUM:=1                               // A variavel 'NUM' ira representar o numero que estamos verificando para saber se e par/primo.
   ENQUANTO (PARES[9]=0) OU (PRIMOS[9]=0) FACA // Enquanto verdadeira, essa condiçao significa que ainda não temos todos os 10 numeros pares/primos
      NUM:=NUM+1
      SE (PARES[9]=0) E (NUM%2=0) então // Se verdadeiro, significa que ainda não temos todos os 10 numeros pares e, o numero que esta sendo verificado ('NUM') é par.
         PARES[A]:=NUM                  // Sendo ('NUM') um numero par, vamos adiciona-lo a lista de numeros pares (vetor 'PARES').
         A:=A+1                         // o indice ('A') recebe +1 para que o proximo numero adicionado não sobreescreva um numero já existente.
      FIMSE
      SE (PRIMOS[9]=0) então            // Se verdadeiro, significa que ainda não temos todos os 10 numeros primos.
         D:=1
         F:=0                           // Quando 'NUM' for divisivel por 'D' e não houver resto, 'F' recebera +1.
         ENQUANTO não(D>NUM) FACA // Se verdadeiro, significa que o divisor ('D') não e maior que o dividendo.
            SE (NUM%D=0) então // Se verdadeiro, significa que temos um numero ('NUM') divisivel por 'D', então...
               F:=F+1          // 'F' recebe +1
            FIMSE
            D:=D+1           // 'D' vai representar o divisor pelo qual 'NUM' sera dividido, afim de saber por quais numers 'NUM' pode ser dividido sem deixar resto.
         FIMENQUANTO
         SE (F=2) então      // Se verdadeiro, significa que 'NUM' e um numero primo, logo...
            PRIMOS[B]:=NUM   // num sera adicionado ao indice 'B', da lista de numeros primos (vetor 'PRIMOS')
            B:=B+1           // A mesma logica da linha 18, mas referente ao vetor PRIMOS.
         FIMSE
      FIMSE
   FIMENQUANTO
   ESCREVA("Números Pares:")
   PARA X:=0 ATE 9 FACA       // Este trecho imprime todos os numeros pares...
      ESCREVA(PARES[X])
      X:=X+1
   FIMPARA
   ESCREVAL("")               // Apenas para pular uma linha...
   ESCREVA("Números Primos:")
   PARA X:=0 ATE 9 FACA       // Este trecho imprime todos os numeros primos...
      ESCREVA(PRIMOS[X])
      X:=X+1
   FIMPARA
fimalgoritmo
	

Link para o comentário
Compartilhar em outros sites

  • 0
Em 20/05/2018 at 14:40, ThiagoD disse:

Legal esse desafio, investi algumas horas pra desenvolver a logica...

O algoritmo que estou postando foi escrito no VisuAlg 3.0...

Espero receber criticas construtivas sobre formas alternativas ou mais eficientes de como desenvolver a logica, como organizar melhor o algoritmo, como fazer comentarios melhores e etc... as criticas construtivas serao bem-vindas... valeu!

 

 


	/////////////////////////////////////////////////////////////////////////////
// Desafio base 2, postado no site: www.scriptbrasil.com.br
// Objetivo: Imprimir na saida, em ordem cresccente, os 10 primeiros numeros
// pares e os 10 primeiros numeros primos a partir de 1.
// por ThiagoD
/////////////////////////////////////////////////////////////////////////////
algoritmo "Pares_e_Primos"
var
   PARES : vetor[0..9] de inteiro
   PRIMOS : vetor[0..9] de inteiro
   A,B,NUM,D,F,X : inteiro
inicio
   NUM:=1                               // A variavel 'NUM' ira representar o numero que estamos verificando para saber se e par/primo.
   ENQUANTO (PARES[9]=0) OU (PRIMOS[9]=0) FACA // Enquanto verdadeira, essa condiçao significa que ainda não temos todos os 10 numeros pares/primos
      NUM:=NUM+1
      SE (PARES[9]=0) E (NUM%2=0) então // Se verdadeiro, significa que ainda não temos todos os 10 numeros pares e, o numero que esta sendo verificado ('NUM') é par.
         PARES[A]:=NUM                  // Sendo ('NUM') um numero par, vamos adiciona-lo a lista de numeros pares (vetor 'PARES').
         A:=A+1                         // o indice ('A') recebe +1 para que o proximo numero adicionado não sobreescreva um numero já existente.
      FIMSE
      SE (PRIMOS[9]=0) então            // Se verdadeiro, significa que ainda não temos todos os 10 numeros primos.
         D:=1
         F:=0                           // Quando 'NUM' for divisivel por 'D' e não houver resto, 'F' recebera +1.
         ENQUANTO não(D>NUM) FACA // Se verdadeiro, significa que o divisor ('D') não e maior que o dividendo.
            SE (NUM%D=0) então // Se verdadeiro, significa que temos um numero ('NUM') divisivel por 'D', então...
               F:=F+1          // 'F' recebe +1
            FIMSE
            D:=D+1           // 'D' vai representar o divisor pelo qual 'NUM' sera dividido, afim de saber por quais numers 'NUM' pode ser dividido sem deixar resto.
         FIMENQUANTO
         SE (F=2) então      // Se verdadeiro, significa que 'NUM' e um numero primo, logo...
            PRIMOS[B]:=NUM   // num sera adicionado ao indice 'B', da lista de numeros primos (vetor 'PRIMOS')
            B:=B+1           // A mesma logica da linha 18, mas referente ao vetor PRIMOS.
         FIMSE
      FIMSE
   FIMENQUANTO
   ESCREVA("Números Pares:")
   PARA X:=0 ATE 9 FACA       // Este trecho imprime todos os numeros pares...
      ESCREVA(PARES[X])
      X:=X+1
   FIMPARA
   ESCREVAL("")               // Apenas para pular uma linha...
   ESCREVA("Números Primos:")
   PARA X:=0 ATE 9 FACA       // Este trecho imprime todos os numeros primos...
      ESCREVA(PRIMOS[X])
      X:=X+1
   FIMPARA
fimalgoritmo
	

Bom dia Thiago, 
Gostei da resolução. Sempre bom ver resoluções diferentes para expandir o jeito de pensar.
Até breve.

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...