Quadratfreie Zahlen

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo!

Ich bin auf der Suche nach einer Methode, um alle quadratfreien Zahlen auszugeben. Habe mir Folgendes überlegt:
Quadratfrei heißt, dass wenn man die Zahl in Faktoren auseinandernimmt (z.B. i) 6 = 2*3; ii) 54 = 2 * 3 * 3 * 3), dass dort keine (Prim)zahl doppelt auftauchen darf. So wäre i) eine quadratfreie Zahl, ii) aber nicht. Soweit richtig, oder?
Somit müsste man doch einfach nur 54 solange durch 2 teilen, bis eine ganze Zahl herauskommt, falls nicht, soll man dann die davorgegangene Zahl nehmen und dann durch 3 teilen, etc. Konkretes Beispiel hieße dann:

20 % 1 == 0 (gerade Zahl)
20 / 2 = 10
10 % 1 == 0 (gerade Zahl)
10 / 2 = 5
5 % 1 == 0 (gerade Zahl)
5 / 2 != 0 (ungerade)
5 % 1 == 0
5 / 3 != 0
....
5 / 5 == 1

Somit wäre 20 = 2 * 2 * 5 * 1 und gleichzeitig eine Quadratzahl, da die 2 zwei Mal vorkommt. Soweit richtig überlegt?

Programmiertechnisch wäre das dann mit einer Schleife zu lösen:

Java:
int x = 20;
for (int a = 2; a <= Math.sqrt(x) + 1;) // Damit er nicht größere Zahlen nimmt; 2*5 = 5*2, 5*2 unnötig zu berechnen
{
  if(x % 1 == 0)
  {
    x = x / a;
  }
  if(x % 1 != 0)
  {
    x = x * a; // die Zahl zurückwandeln
    a++; // anscheinend klappte es nicht mit dem a=2 (als Beispiel); dann versuchen wir mit a=3, etc.
  }
}

Ist doch soweit richtig überlegt? Oder kann man sogar noch effizienter lösen?

Grüße, Gast
 

ttplayer

Aktives Mitglied
1. Das mit der Wurzel ist richtig überlegt.
2. Also x % 1 bringt nichts, du musst x % a machen.

Java:
int x = 20;
boolean Quadratzahl = true;
int lastDivisor = 0;
for (int a = 2; a <= Math.sqrt(x) + 1 && Quadratzahl;)
{
  if(x % a == 0)
  {
       if (x != lastDivisor)
       {
           x = x / a;
           lastDivisor = x;    //merkt sich, durch was er schon mal geteilt hat
       }
       else Quadratzahl = false;
  }
  else a++;
}
 
G

Gast

Gast
Hallo,
in Anlehnung an deine Fragestellung habe ich auch eine Frage :).
Ich soll ein Programm schreiben, das in einem bestimmten Intervall alle Quadratfreien Zahlen ausgibt.

Ich habe mir folgendes überlegt:
[Java]
/****************************** quadratzahlen.java **************************/

import AlgoTools.IO;

/**
* @version 08.11.09
*
* @author Patrick Fox
* @author Christian Viergutz
*/

public class quadratzahlen {

public static void main(String[] argv) {

IO.println("Dieses Programm berechnet alle Quadratfreien Zahlen in einem bestimmten Intervall");
int unten; int oben;
boolean quadratfrei;
int i; int counter;
int letzterTeiler=0;

unten = IO.readInt ("Bitte Untergrenze eingeben: ");
oben = IO.readInt ("Bitte Obergrenze eingeben: ");
while (oben <=unten) {
oben = IO.readInt ("Bitte Obergrenze > als Untergrenze: ");
}

for (i = unten; i <= oben; i++){
counter = i;
quadratfrei = true;
for ( int a = 2 ; quadratfrei == true && a < counter; ){
if (counter % a == 0){

if (counter != letzterTeiler){
counter = counter / a;
letzterTeiler = counter;
}
else quadratfrei = false;

}
else a++;
}
if (quadratfrei = true) {
IO.print( i , 6 );
}
if ( ( i-unten) / 8 == 1) { IO.println();}
}
IO.println();
}
}
[/code]

wenn ich das Progamm ausführe spuckt er mir aber alle Zahlen des intervalls aus. Ich finde den Fehler einfach nicht. Wer kann mir helfen ?

Liebe Grüße

Patrick
 
G

Gast

Gast
Hach... manchmal sieht man den Wald vor lauter Bäumen nicht, was für ein Anfängerfehler ;). Aber ich bin ja auch einer.
Vielen Dank
Gruß Patrick
 

Schumi

Bekanntes Mitglied
Die Technik booleans per "==" auf Gleichheit zu true zu überprüfen sollte man evtl. noch einmal überdenken.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Quadratfreie Zahlen ausgeben Java Basics - Anfänger-Themen 8
K Enum Römische Zahlen Java Basics - Anfänger-Themen 6
T Kombination von 3 Zahlen Java Basics - Anfänger-Themen 5
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
sserio Befreundete Zahlen Java Basics - Anfänger-Themen 7
AhmadSlack Verzweigungen zahlen multiplizieren Java Basics - Anfänger-Themen 4
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
H Zahlen kürzen Java Basics - Anfänger-Themen 2
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
H Ungerade Zahlen ausgeben von 1 bis 1000 Java Basics - Anfänger-Themen 8
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
X Wie kann ich Zahlen in einzelne Zifferne zerlegen? Java Basics - Anfänger-Themen 3
J 10 positive Zahlen eingeben Java Basics - Anfänger-Themen 10
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
M Zahlen erraten Java Basics - Anfänger-Themen 7
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
S Mit nextGaussian() positive Zahlen erzeugen? Java Basics - Anfänger-Themen 39
D auch negative Zahlen sotieren Java Basics - Anfänger-Themen 18
M Warum berechnet mein Primzahlenprog zu hohe Zahlen nicht? Java Basics - Anfänger-Themen 20
W Bell Zahlen Java Basics - Anfänger-Themen 2
H Min und Max von Zahlen Java Basics - Anfänger-Themen 10
der_Schokomuffin Fehler bei Zufallsgeneration von Zahlen Java Basics - Anfänger-Themen 7
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
Moji Klassen Array Zahlen zu Sternchen (U-Helmich 7.1-4) Java Basics - Anfänger-Themen 5
F Summe aller echten Teiler und Zahlen zurückgeben Java Basics - Anfänger-Themen 1
T Perfekte Zahlen ausgeben Java Basics - Anfänger-Themen 12
F Zahlen im Feld sortieren + Unterprogramm Java Basics - Anfänger-Themen 4
H Zahlen 1-100 Java Basics - Anfänger-Themen 2
H Einlesen von Zahlen Java Basics - Anfänger-Themen 20
O Problem gleiche Zahlen Java Basics - Anfänger-Themen 2
V Hilfe Aufgabe Zahlen Java Basics - Anfänger-Themen 9
J Zahlen addieren Java Basics - Anfänger-Themen 12
P Schlüsselworte Zählen und Zuweisen von eingelesenen Zahlen Java Basics - Anfänger-Themen 1
D Irgendwelche Ideen um Zahlen Reihenfolgen zu analyisieren Java Basics - Anfänger-Themen 16
CptK Datentypen Zahlen Java Basics - Anfänger-Themen 2
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
Y kann jemand die Terme mit Zahlen schreiben ?? Java Basics - Anfänger-Themen 4
A Ein Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
E LMC (Assembler) Sortieren von 3 Zahlen Java Basics - Anfänger-Themen 4
x-tshainge Zahlen Buchstaben zuordnen Java Basics - Anfänger-Themen 4
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben