• 0
Sign in to follow this  
Thiago André Cardoso

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

Question

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

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 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
	

Share this post


Link to post
Share on other 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.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this