Javanack
13-05-2002, 00:17
Habe in der 3. Runde das Beispiel bekommen, wo man eine Zahl zwischen 1 und 100 in seine Primfaktoren zerlegen muß. Folgenden Code habe ich verfaßt, bin aber ratlos warums nicht funktioniert. Es wird einfach nichts ausgegeben. Da ich ein Programmieranfänger bin, wäre ich für jede Hilfe dankbar.
import eprog.*;
public class Primfakt extends EprogIO {
public static void main (String []args) throws EprogException
{
short[]primzahlen = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61 ,67,71,73,79,83,89,97};
int eingabe = 0;
String ausgabe = new String();
boolean falscheEingabe = false;
int i = 0;
try {
eingabe = readInt();
if (eingabe < 0 || eingabe > 100)
ausgabe = "FALSCHE EINGABE";
eingabe = -1;
}
catch (EprogException e)
{
ausgabe = "?";
eingabe = -1;
}
if (eingabe == 0)
{
ausgabe = "0";
eingabe = -1;
}
if (eingabe == 1)
{
ausgabe = "1";
eingabe = -1;
}
while (eingabe > 1 && i < 25) {
if (eingabe % primzahlen[i] == 0)
{
ausgabe = ausgabe + primzahlen[i];
eingabe = eingabe/primzahlen[i];
if (eingabe != 1)
ausgabe = ausgabe + " ";
}
i++;
}
println (ausgabe);
}
}
import eprog.*;
public class Primfakt extends EprogIO {
public static void main (String []args) throws EprogException
{
short[]primzahlen = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61 ,67,71,73,79,83,89,97};
int eingabe = 0;
String ausgabe = new String();
boolean falscheEingabe = false;
int i = 0;
try {
eingabe = readInt();
if (eingabe < 0 || eingabe > 100)
ausgabe = "FALSCHE EINGABE";
eingabe = -1;
}
catch (EprogException e)
{
ausgabe = "?";
eingabe = -1;
}
if (eingabe == 0)
{
ausgabe = "0";
eingabe = -1;
}
if (eingabe == 1)
{
ausgabe = "1";
eingabe = -1;
}
while (eingabe > 1 && i < 25) {
if (eingabe % primzahlen[i] == 0)
{
ausgabe = ausgabe + primzahlen[i];
eingabe = eingabe/primzahlen[i];
if (eingabe != 1)
ausgabe = ausgabe + " ";
}
i++;
}
println (ausgabe);
}
}