Ich habe ein wenig mit C angefangen. Was macht man als erstes Programm? Was wohl jeder schon mal programmiert hat: Primzahlberechnung.
Was lässt sich an diesem Programm verbessern? Besonders der Switch gefällt mir nicht:
Wenn ich nicht mehr weiter kann,
mach' ich einen Schalter an.
#include <stdio.h>
#define MAX 500000
int main()
{
long int z[MAX], iz, i, i2, j, k, l;
int sw;
/* in z[] werden die gefundenen Primzahlen
    gespeichert. Jede weitere Zahl kann
    nur dann eine Primzahl sein, wenn sie
    sich durch eine der gefundenen Primzah-
    len teilen läßt. Diese Prüfung braucht
    aber nur bis zum halben Wert der aktuell
    zu prüfenden Zahl i durchgeführt werden
    (Um Widerspruch wird gebeten).
   i=aktuell auf Primzahl zu prüfende Zahl
   j=Index(z) für Primzahlprüfung
   k=aktuelle Primzahl für Prüfung mit i */
iz=2;
z[1]=2;
z[2]=3;
printf ("2,3");
/* maximal MAX Primzahlen berechnen */
for (i=1; iz<MAX && i<2147483647 ; i++)
{
   k=z[1];
   i2=i/2;
   sw=0;
/* Prüfe, ob i durch bisherige Primzahlen
                  bis max. i/2 teilbar ist */
   for (j=1; k<=i2 ; j++, k=z[j])
   {
      sw=1;
      l=(i/k);
      if (l*k==i)
      {
          sw=0;
          break;
      };
   };
   if (sw)
   {
      z[++iz]=i;
      printf (",%d",i);
   };   
};
printf ("\nAnzahl=%d \n", iz);
return 0;
}
| cottonwood (10.878)       167x Beste Antwort 276x "Danke" | 






 
			
				