G
gast 2007
Gast
hallo,
ich hab nen algorithmus geschrieben, der schwache primzahlen sucht (für meine frage irrelevant).
jetzt fehlt mir noch eine methode, die zählt. also immer eins auf null addiert und dann wieder eins drauf und so weiter.
Also jedesmal, wenn die if-bedingung in zeile 125 erfüllt wird, soll die methode zähler() zeile 111 um eins erhöht werden...
ich hab nen algorithmus geschrieben, der schwache primzahlen sucht (für meine frage irrelevant).
jetzt fehlt mir noch eine methode, die zählt. also immer eins auf null addiert und dann wieder eins drauf und so weiter.
Also jedesmal, wenn die if-bedingung in zeile 125 erfüllt wird, soll die methode zähler() zeile 111 um eins erhöht werden...
Code:
public class Weakly
{
/**
* Testet, ob die als Parameter uebergebene Zahl eine Primzahl ist
* und gibt einen Text als Ergebnis zurueck, der das Testergebnis beschreibt, z.B.
* "*** Zahlen kleiner 2 sind keine Primzahlen! "
* oder bei zahl = 15
* "*** Zahl 15 ist keine Primzahl! 3 ist Teiler."
*/
static boolean primtest(int zahl)
{
if (zahl < 2 ) {
return false;
} else { // zahl >= 2
/* Fuer den kleinsten Teiler i gilt: i>=2 und i*i <= zahl,
* denn aus i*j == zahl und i <= j (also i die kleinere Zahl) folgt i*i <= i*j == zahl
*/
for (int i=2; i*i <= zahl; i++) {
if(zahl%i == 0) { // Teiler gefunden
return false;
// Arbeit der Methode beendet
}
}
// Keinen Teiler gefunden!
return true;
} // Ende zahl >= 2
}
public static void primsinintundstring(String stringzahl)
{
int zahl = Integer.parseInt(stringzahl);
for (int i = 0; i <= zahl; i++)
{
if (primtest(i))
{
inarray(i);
}
}
System.out.println("Es gibt keine weiteren.");
}
public static void inarray(int zahl)
{
String zahlstring = (new Integer(zahl)).toString();
int laenge = zahlstring.length();
int[] zahlarray = new int[laenge];
for (int i = 0; i < laenge; i++)
{
char ziffer = zahlstring.charAt(i);
int ziffer1 = Character.getNumericValue(ziffer);
zahlarray[i] = ziffer1;
}
durchlauf(laenge, zahlarray, zahl);
}
public static void durchlauf(int laenge, int[] zahlarray, int zahl)
{
int test = 0;
int[] zahlarray2 = zahlarray.clone();
for (int i = 0; i < laenge; i++)
{
for (int j = 0 ; j < 10 ; j++)
{
zahlarray[i] = j;
for (int k = 0; k < laenge; k++){
}
test = schwachforreal(zahlarray, (test));
}
zahlarray = zahlarray2.clone();
}
ausgabe(test, zahl);
}
public static int schwachforreal(int[] zahlarray, int test)
{
int faktor = 1;
int integerzahl = 0;
int laenge = zahlarray.length - 1;
for(int i = laenge; i >= 0; i--)
{
integerzahl = integerzahl + (faktor * zahlarray[i]);
faktor = faktor * 10;
}
boolean bool = primtest(integerzahl);
if (bool==true)
{
test++;
}
return test;
}
public static void main (String[] args)
{
primsinintundstring(args[0]);
}
public static int zaehler()
{
int counter = 1;
return counter;
}
public static void ausgabe(int test, int zahl)
{
String zahlstring = (new Integer(zahl)).toString();
int laenge = zahlstring.length();
test = test - laenge;
int zaehler = 0;
if (test == 0)
{
System.out.println("Die "+ zaehler() + "-te schwache Primzahl ist " + zahl);
}
}
}