Questão

9 respostas
Thiago_Sylas
[color=green]Bom dia pessoal, estou começando a programar em java e por isso estou ainda com programas bem simples, contudo um destes ainda não acertei em fazer, que seria: elaborar um programa que inserindo um número, fatore esse número assim como um mmc (contudo apenas de um número).

Exemplos: 15 = 3,5;

48 = 2,2,2,2,3;

E outros

Eu sei que por parecer muito simples alguns nem deêm importância, mas não custa nada contribuir, obrigado![/color]

9 Respostas

davidbuzatto

Isso é um problema com algoritmo, não um problema com a linguagem Java não é mesmo?

O que você já fez? Pode postar?

Isso ai se chama decomposição em fatores primos.
MMC é o mínimo múltiplo comum entre dois ou mais números, ou seja, o menor número que divide dois ou mais números simultaneamente e que o resto da divisão inteira é zero.

[]´s

Thiago_Sylas

Realmente vc está correto, isto é mais um problema com o algoritimo, o que eu fiz até agora foi apenas fazer com que o programa imprimisse os divisores do número, como está no código abaixo:

import java.util.Scanner;

public class questao{

public static void main(String[] args){

Scanner scn = new Scanner(System.in);
int num = scn.nextInt();
    int i;
    while(num>1){
    for (i=2; i<=num; i++){
       if (num%i==0)
          System.out.println(i);
         }
        num = num/i;
      }
  }

}

Ja tentei vários meios para resolver o problema por completo, mas apaguei e por isso não estou enviando neste algoritmo. Eu estava pensando em selecionar apenas um único i que no caso o menor de todos e seleciona-lo para ser impresso na tela e usado para dividir o número, estava trabalhando em cima disso, e pergunto seria uma solução?, se for é realmente isso que eu estou buscando, pois pode me ser útil também em outros casos. Aguardo resposta, obrigado!

Gustavokt

MMC ou MDC?

Se for o MDC, você pode tentar ver o algoritmo de Euclides.

E

Para fazer a fatoração de um número, ache os primos <= raiz quadrada desse número, e então, para cada primo dessa lista, veja quantas vezes cada um dos primos consegue dividir esse número.

Para fazer essa lista de primos, use o algoritmo “Crivo de Eratóstenes”. Se procurar aqui no GUJ vai achar isso pronto. Então para determinar os divisores é bem simples.

davidbuzatto

Além das dicas do entanglement, recomendo que você dê uma lida aqui para aprender a colar código fonte no fórum.

[]´s

E

Não existe “mmc de um número” nem “mdc de um número.” - a menos que você considere que MMC de um número é ele mesmo, e MDC de um número é ele mesmo.

Para determinar o MDC de dois números, use o algoritmo de Euclides (que você também pode achar aqui no GUJ).
Para achar o MMC de dois números, basta achar o MDC deles, e dividir o produto desses números pelo MDC deles.

Thiago_Sylas

A relação que eu usei MMC é apenas para ilustrar, na verdade é a fatoração, contudo não do seu máximo divisor, mas sim do seu mínimo divisor, que será impresso em tela e depois dividirá o número inserido, posteriormente esse novo número terá novamente outro minimo divisor que novamente será impresso na tela e dividirá o número criando outro e assim sucessivamente, até que esse número seja 1, uma vez que se ele não possuir mais divisores será dividido por ele mesmo.

Thiago_Sylas

Obrigado pessoal, eu vou analisar as soluções que vocês me indicaram e David valeu por enviar a forma correta de como colocar os códigos eu vou ler e da próxima vez ja deixo mais claro o que quero, é que este é o primeiro tópico em que pesso auxilio.

Patrick_Bahia

rsrs…esquenta não…
tipo…você pode ir na base do tentativa e erro
verificando se o número é divisível por outro pegando seu resto

int x, y;
x = 3;
y = 15;

if(!15%3)
 System.out.println("É Divisível");

daio em diante vc viaja

Criado 1 de novembro de 2010
Ultima resposta 1 de nov. de 2010
Respostas 9
Participantes 5