How to make a variable save each number that a counter divides by a certain number?

1

Let's suppose that the number is 12. How to show the numbers 1, 3, 6, 12 in front?

I put a note in front of the line of code that I'm talking about.

algoritmo "Nums primos"
var
N,C,TotNums : inteiro
inicio
   C <- 1
   TotNums <- 0
   Escreval ("Digite um numero")
   leia (N)
   Enquanto (C <= N) faca
      Se (N%C = 0) entao
         TotNums <- TotNums + 1
      FimSe
      C <- C + 1
   FimEnquanto
   Se (TotNums > 2) entao
      Escreval ("O numero ",N," não é primo,pois ele é divisivel pelos numeros")///É nessa linha que eu quero colocar os numeros.
   senao
      Escreval ("O numero ",N," é primo.")
   Fimse
fimalgoritmo
    
asked by anonymous 11.12.2016 / 18:52

1 answer

4

There are some ways you can do this. If it is necessary to do some operation with these numbers, the best thing would be to create an array (or list) and save these values.

If the only intention is to show these values, you can create a string ( caractere in VisualG) and go concatenating the numbers in it.

Since VisualGG is for beginners, and from the code, it seemed to me that you know arrays . Here's an example using the second option.

Note: I noticed that I changed the name of the variables N and C to NumeroEscolhido and Contador . Well-named variables make the code more readable and easier to understand.

algoritmo "Nums primos"
var
NumeroEscolhido, Contador, TotNums : inteiro
DivisivelPor : caractere
inicio
   Contador <- 1
   TotNums <- 0
   Escreval ("Digite um numero")
   leia (NumeroEscolhido)
   Enquanto (Contador <= NumeroEscolhido) faca
      Se (NumeroEscolhido % Contador = 0) entao
         TotNums <- TotNums + 1
         DivisivelPor := DivisivelPor + ", " + Contador
      FimSe
      C <- C + 1
   FimEnquanto
   Se (TotNums > 2) entao
      Escreval ("O numero ", NumeroEscolhido, " não é primo, pois ele é divisivel pelos numeros ", DivisivelPor)
   senao
      Escreval ("O numero ", NumeroEscolhido, " é primo.")
   Fimse
fimalgoritmo

Below is a JavaScript version, so you can run right here and see what works.

var numeroEscolhido = 12;
var contador = 1;
var totalNums = 0;
var divisivelPor = "";

while(contador <= numeroEscolhido){
  if(numeroEscolhido % contador == 0){
    totalNums += 1;
    divisivelPor += contador + ", ";
  }
  
  contador += 1;
}

if(totalNums > 2){
  console.log("O número " + numeroEscolhido + " não é primo, pois é divisível por " + divisivelPor);
}else{
  console.log("O número " + numeroEscolhido + " é primo");
}
    
11.12.2016 / 19:52