Números Perfeitos com Java

Publicado por Alan Teixeira 30/12/2007

[ Hits: 17.982 ]

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

Expoente

Calculando a Media

Comando for

Agenda em Java

Operadores


  

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