Ciao a tutti Sto iniziando ad imparare a programmare in Java.
Dopo aver letto buona parte del libro, ho iniziato a cercare qualche esercizietto, e sto iniziando con questo:
Scrivere un metodo che, dato un booleano stampa e un numero n, restituisce il numero di divisori interi di n. Se stampa è true, essi vengono stampati a video come effetto collaterale durante l'esecuzione del metodo.
Io l'ho implementato così:
codice:
/*
  Calcolo dei divisori di n.
*/

class Divisori {
  boolean stampa;
  int n;
  int numeriDivisori[] = new int[n];

  void divisori() {
    int quanti = 0;
    for (int i=1; i <= n; i = i+1) {
        if (n%i == 0) {
           quanti = quanti + 1;
           if (stampa) {
              numeriDivisori[quanti - 1] = i;
           } 
        }
    } // fine ricerca divisori

  if (quanti == 1)
    System.out.println("Il numero " + n + " ha un solo divisore");
  else
    System.out.println("Il numero " + n + " ha " + quanti + " divisori");
  
  if (stampa) { //Stampo i divisori se richiesto
     System.out.println("I divisori di " + n + " sono:");
     for (int j=0; j < quanti; j = j + 1) {
         System.out.println(numeriDivisori[j]);
     }  
  }// fine stampa dei divisori

  }// fine divisori()
}

class Prova {
  public static void main(String[] args) {
     Divisori d = new Divisori();
     d.n = 13;
     d.stampa = true;
     d.divisori();
  }//main()
}
Il compilatore compila tranquillamente, ma lanciando il programma ho il seguente errore
codice:
Exception in thread "main" java.lang.NoClassDefFoundError: Prova/class
Caused by: java.lang.ClassNotFoundException: Prova.class
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
dove posso aver sbagliato?