How to make a variable to store each number that a counter divides by a given number?

Asked

Viewed 1,532 times

1

Let’s assume 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 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
  • You’ve already learned about arrays and/or lists?

1 answer

4


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

If the only intention is to display these values, it is possible to create a string (caractere in Visualg) and concatenate the numbers into it.

As Visualg is for beginners and, by code, it seemed to me that you know arrays. Here is an example using the second option.

Note: Notice that I changed the name of the variables N and C for NumeroEscolhido and Contador. Well-named variables make 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 a Javascript version, so you can run right here and see that it 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");
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.