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?