Tentei tentei, mas não consegui

Galera eu tentei mas realmente não consegui, não consegui fazer com que o meu programa pegasse os numeros automaticamente vou explicar melhor :

eu criei um programa que pega um numero inteiro eleva esse numero a ele mesmo, depois soma os caracteres, pega o resultado a soma e divide pelo primeiro numero onde foi dada a entrada.

Eu consigo fazer a entrada manualmente, não gostaria de automatizar essas entradas, tentei criar um for mas não deu certo.

Vou por o meu programa para vocês verem, e se alguém puder editar o codigo eu ficarei contente.

import javax.swing.JOptionPane;
public class Eleva{

public static void main( String args[])
{
String novo,entrada,output;
int n1=0,n2=0,n3=0,n4=0,total=0;
double r;

for(int a=1;a<100;a++){
n1=a;

r=Math.pow(n1,n1);
n3=(int)r;

novo=String.valueOf(n3);

for(int i=0; i < novo.length();i++){

n2+=Integer.parseInt(novo.charAt(i)+"");

}

n4+=n2/n1;

 if(n4==n1)
   total = total + n4;  
     

output="valor :"+total;

System.out.println(total);

}

System.exit(0);

}
}

Nao sei se entendi direito o que vc quer e provavelmente se entendi deve haver um jeito melhor de ser feito, mas sao 20 pras 4 da madruga e to “meio volt” só, heheh

ve se eh + ou - isso

public class Eleva {

	public static void main( String args[])
	{
		String novo;
		int n = 0;

		for( int a = 1; a < 100; a++ )
		{
			n = (int)Math.pow( a, a );

			novo = String.valueOf( n );

			n = 0;
			for( int i = 0; i < novo.length(); i++ )
			{
				n += Integer.parseInt( novo.charAt(i) + "" );
			}

			System.out.println( (float)n/a );

		}

		System.exit(0);

	}
}

flwz!!