Números Perfeitos com Java

Publicado por Alan Teixeira 30/12/2007

[ Hits: 17.983 ]

Homepage: NULL

Download NumerosPerfeitos2.java




É um script simples que foi usado no meu trabalho semestral.

Encontra números perfeitos,  dado como parâmetro um vetor.

  



Esconder código-fonte

//  Programa que encontra numeros perfeitos em java dado uma lista como parametro
// Autor: Alan Santos Teixeira
// email: astdarkness@yahoo.com.br >Astdarkness<
// Descrição: Número perfeito é um número natural cuja soma de seus divisores próprios 
//(excluído o próprio número) coincide com o número.
//  Exemplo:
// Numeros Perfeitos: 6,28,496,
//  6  ==> 1+2+3=6
//  28 ==> 1+2+4+7+14=28
// 496 ==>  1+2+4+8+16+31+62+124+248=496

public class NumerosPerfeitos2{

   
   public static int[] NumPerfect(int[] lista){
   // Função que retorna um array de numeros perfeitos
   
         int elemento, soma, cont;
         int resposta[]=new int[lista.length];   //array que armazena a resposta temporaria
         int total[];                     // array que armazena a resposta final   
                  
         cont=0;   // contador responsavel pelo indice do array resposta  adicionando o numero
               //na posicao e tambem responsavel pela quantidade de numeros perfeitos achados
         
         for (int i=0; i < lista.length ; i++) {
               soma = 0;
               // pega o  elemento da lista  passada como parametro      
               elemento=lista[i];          
               for (int j=1 ; j < elemento ; ++j)    
               
                  // acha  os divisores próprios excluido-se o próprio numero
                  if ( (elemento % j) == 0) soma += j;
                  
               // verifica se a soma dos divisores próprios e igual ao numero da lista   
               if (soma == elemento)
                   // adiciona no array temporario de o valor coincide
                  resposta[cont++]=elemento;
               
         }
         
         total=new int[cont]; // cria um novo vetor para receber apenas os elementos encontrados
         for(int z=0; z< cont; z++){
            total[z]=resposta[z];
         }
         
         return total; //retorna o novo vetor com os numeros perfeitos
   }

   public static void main(String args[]){
   //Testa a funcao
      int list[]={33550336,28,7,5,6,496,51,8128};
      int vet[];
      
      
      vet= NumPerfect(list) ;
      
      for(int i=0; i< vet.length; i++){
         System.out.println(vet[i] + "\t");
      }
   }
}


Scripts recomendados

Jogo de adivinhação de números

Aplicação simples de password

Calculadora básica em Java

Produto de 3 números

Soma de Matrizes


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts