Datentyp der noch größer ist als long int ??

Du könntest viell. nen anderen Algorithmus benutzen. Du verwendest den "dümmsten" algo, da er einfach alle Zahlen auf Teilbarkeit testet. Hab letztens in nem Forum eine Programmieraufgabe wie deine gesehen und da waren Algos, welche Primzahlen von 1 bis 10 Mio in 0.1 Sekunden gefunden haben. Diese Codes berechnen nur eine Hand voll Primzahlen um mit diesen dann die größeren Primzahlen zu finden.
 
Das habe ich am Anfang auch mal versucht ^^ Aber als die Textdatei, in der ich alles gespeichert hatte mehr als 100MB groß wurde, hab ich's aufgegeben ^^
 
Hallo,
naja man muss auch die printf Kommandos, sofern man die benutzt, anpassen:

Code:
int main() { 
  long long x;
  x = (1 << 31) & 0xFFFFFFFF; //Damit die Zahl nicht negativ wird
  x *= 100; //Overflow


  printf("X: %I64d\n", x); 
}

Getestet mit Windows, Dev-C++ 4.9.9.2 (gcc).


Mit 64 Bit Zahlen auf einer 32 Bit CPU in C zu spielen macht nicht unbedingt Spaß ;)
 
Original von AmShaegar
Original von q9fx7
ein kleiner Tip zur performance:
Ist dir schonmal aufgefallen dass jede Quadratzahl die Formel 2^x -1 hat?
Das ist gleich mehrfach nicht korrekt :-) Du meinst nicht Quadratzahlen, sondern Primzahlen. Quadratzahlen sind wie schon erwähnt nur x^2. Aber dennoch ist die Aussage falsch: Sehr große Primzahlen werden häufig anhand dieser Formel gefunden. Diese Zahlen nennen sich Mersenne-Primzahlen. Allerdings ist nicht jede Primzahl eine Mersenne-Primzahl, denn zum Beispiel 5 != 2^x -1 für x Element aus den natürlichen Zahlen.

Mehr als - du hast Recht - kann ich dazu nicht sagen, oder?
 
Zurück
Oben