Was macht ein Physikstudent, wenn er keine Lust hat, sich mit seinem Studium zu beschäftigen und ihm trotzdem langweilig ist?
Wahrscheinlich kann man das nicht so pauschal beantworten, jedoch habe ich mir gerade ein C-Programm geschrieben, welches mir alle Primzahlen bis zu einer bestimmten Zahl N berechnet und ausgibt. Zudem fand ich es noch interessant, zu überprüfen wie sich die Differenz zwischen zwei aufeinanderfolgenden Primzahlen und das Verhältnis zwischen Anzahl von Primzahlen zu normalen Zahlen verändert.
Schön fande ich vorallem, dass man einen exponentiellen Abfall bei dem Verhältnis bemerken konnten:
Die Differenz zwischen zwei aufeinanderfolgenden Primzahlen war da weniger aufschlussreich:
Für jeden, der selber einmal damit herumspielen will, hier der Programmcode, der einen alle Primzaheln bis 100000 ausgeben dürfte. Man sollte N vielleicht nicht zu groß wählen, denn das fordert den Rechner dann doch ganz schön.
#include <stdio.h> #include <stdlib.h> #define N 100000 #define windows void clearScreen(){ //löscht das Ausgabefenster #if defined(windows) system("cls"); #endif #if defined(linux) system("clear"); #endif } int main(int argc, char *argv[]){ long int prim1=1, prim2=1, n, i=1, check=1; double pro, ratio; FILE *ausgabe=fopen("ausgabe.txt", "w"); //Ausgabedatei for(prim1=1; prim1<=N; prim1++){ //Primzahlschleife if(!(prim1%1000)){ //Fortschrittsberechnung pro = (double) prim1/N * 100; clearScreen(); //Ausgabe des Fortschritts printf("Fortschritt:\t %.1f %%\n", pro); } for(n=2; n<prim1; n++){ //Überprüfung ob die Zahl durch eine andere teilbar ist oder nicht if(!(prim1%n)) check=0; } if(check){ //Ist die Zahl eine Primzahl, wird sie nun ausgegeben fprintf(ausgabe,"%d\t%d\t%d\t%f\n", i, prim1, prim1-prim2, (double) i/prim1); i++; prim2=prim1; } else check=1; } fclose(ausgabe); return 0; }