Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Rodrigues Torre

[Resolvido] Divisores de um numero

Recommended Posts

Não sei onde esta o erro neste algoritmo

Ele não esta funcionando direito

 

algoritmo "divisores"

// Função : Calcular divisores de um numero

// Autor : Gustavo Rodrigues Torre

// Data : 29/10/07

// Seção de Declarações

var

n,i,acm : inteiro

inicio

// Seção de Comandos

 

escreva("Digite um numero qualquer: ")

leia(n)

para i de n ate -n passo -1 faca

 

i <- 1

 

se (n % i = 0) entao

acm <- acm + 1

fimse

escreval(acm)

fimpara

escreval("Divisores de",n, " são ",acm)

 

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer mostrar os divisores na tela, você não deve fazer acm <- acm + 1, pois isto esta apenas incrementando acm.

Se i é um divisor de n, então você deve fazer acm <- i

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz mais só me mostra -1

 

algoritmo "divisores"

// Função : Calcular divisores de um numero

// Autor : Gustavo Rodrigues Torre

// Data : 29/10/07

// Seção de Declarações

var

n,i,acm : inteiro

inicio

// Seção de Comandos

escreva("Digite um numero qualquer: ")

leia(n)

//i <- 1

para i de n ate 0 passo -1 faca

se (i <> 0) entao

se ( i = 0 ) entao

interrompa

se (n % i = 0) entao

acm <- i

interrompa

fimse

fimse

fimse

fimpara

 

para i de n ate -1 passo -1 faca

 

se (i <> 0) entao

se (n % i = 0) entao

acm <- i

fimse

fimse

fimpara

 

escreval("Divisores de",n, " são ",acm)

 

fimalgoritmo

 

 

Se você quer mostrar os divisores na tela, você não deve fazer acm <- acm + 1, pois isto esta apenas incrementando acm.

Se i é um divisor de n, então você deve fazer acm <- i

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste isso:

 

algoritmo "divisores"
// Função : Calcular divisores de um numero
// Autor : Gustavo Rodrigues Torre
// Data : 29/10/07
// Seção de Declarações
var
n,i,acm : inteiro
inicio
// Seção de Comandos
acm <- 0
escreva("Digite um numero qualquer: ")
leia(n)
para i de 1 ate n passo 1 faca
   se (n % i = 0) entao
	  acm <- acm + 1
   fimse
fimpara
escreval("Quantidade de divisores: de ",n, " eh ",acm)

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Kandrade

 

E quanto aos divisores negativos como eu faço?

 

Teste isso:

 

algoritmo "divisores"
// Função : Calcular divisores de um numero
// Autor : Gustavo Rodrigues Torre
// Data : 29/10/07
// Seção de Declarações
var
n,i,acm : inteiro
inicio
// Seção de Comandos
acm <- 0
escreva("Digite um numero qualquer: ")
leia(n)
para i de 1 ate n passo 1 faca
   se (n % i = 0) entao
	  acm <- acm + 1
   fimse
fimpara
escreval("Quantidade de divisores: de ",n, " eh ",acm)

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi nada, se quiser mesmo os divisores negativos faça isso:

 

para i de -n ate n passo 1 faca

Obrigado Kandrade

 

E quanto aos divisores negativos como eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não conheço o operador de negação ou o operador relacional diferente.

fica mais ou menos assim:

 

 

para i de 1 ate n passo 1 faca
   se (i "diferente de" 0) faca // em C seria if(i != 0)
	  se (n % i = 0) entao
		 acm <- acm + 1
	  fimse
   fimse
fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade deixa

Funcioneou muito obrigado pode colocar tópico resolvido

Abrigado

Foi dificil mais conseguimos resolver o algoritmo

 

 

Eu não conheço o operador de negação ou o operador relacional diferente.

fica mais ou menos assim:

 

 

para i de 1 ate n passo 1 faca
   se (i "diferente de" 0) faca // em C seria if(i != 0)
	  se (n % i = 0) entao
		 acm <- acm + 1
	  fimse
   fimse
fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.