Gut, lass mal sehen...

Erst mal stammt das Zitat wohl von http://www.frank-buss.de/prime/, seh ich das richtig? Ist etwas sehr aus dem Kontext gerissen.

Dann ein bisschen (hoffentlich konstruktive) Kritik:
1. Ich weiß zwar zugegebenermaßen selber nicht, was eine "generative Formel" ist, aber das ist sicher keine. Das ist ein Algorithmus und so was findest du in jedem guten C++ Lehrbuch als Beispielcode. Übrigens ist auf der oben genannten Seite auch ein Link zu einem entsprechenden Algorithmus.

2. Schlechter Einrückstil. Rück nach MöglichkeitGrunsätzlich immer 2 bzw. 4 Leerzeichen weit ein, je nachdem, was dir besser gefällt. Aber bleib bei einem von beidem.

3. Es erscheint keine Ausgabe, wenn die Zahl keine Primzahl ist.

4. Zumindest bei mir ist bei einem Probelauf nach der Eingabe gar keine Ausgabe mehr sichtbar, weil das Fenster sofort geschlossen wird. Schreib ein getchar(); ans Ende. (Wobei das von meinem gcc auch nicht richtig kompiliert wird.)

5. Rechtschreib-/Tipfehler in sehr kurzen Ausgaben. Wenn sichs nur um Code zum Lernen handelt, mag das egal sein, aber wenn du das anderen weitergibst, solltest du wenigstens das Gröbste korrigieren.

6. Nach zwei "}" hast du ein unnötiges Semikolon.

7. Es ist eine SEHR merkwüdige Methode, seine Variablen zu deklarieren, indem man sie als Parameter der Main Funktion hinzufügt.

8. Die beiden Ifs am Schluss lassen sich mit && verbinden.

9. Die Kommentarzeile zwischendrin ist mir nicht ganz klar. Scheint eine Debuginfo zu sein, die ich aber auch nicht wirklich entziffern kann.

Ich hab mir mal die Mühe gemacht und eben diese Fehler ausgebessert:

Code:
#include <iostream.h>

int main()           
{
  float i;
  int z, y, x;
  float t, k, h;
  int primzahl;
             
  cout << "Zahl eingeben" << endl;
  cin>>primzahl;

  for(i=1;i<=primzahl;i=i+1)
  {
    x = 0 ;
    for(z=1;z<=i;z=z+1)
    {
      y = i/z ;
      if (y == i)
      {
        x = x+1 ;     
      }
       
      for(t=1;t<=i;t=t+1)
      {
        k = i/t ;  
        for(h=1;h<=i;h=h+1)
        {          
          if(k == h)   
          {
            x = x+1 ;       
          }
        }         
      }
    }
    
    if (x == 2*i+1 && i == primzahl)
    {
      cout << "Die Zahl " << i << " ist eine Primzahl" << endl;     
    }
  getchar(); 
  }           
}
Trotzdem halte ich den Algorithmus immer noch für alles andere als gut verständlich. Hier mal eine Variante in Form einer Funktion:

Code:
bool ist_primzahl(int zahl)
{
  for(int i = 2; i*i <= zahl; i++)
  {
    if(zahl%i == 0) // lässt sich die Zahl restlos durch i teilen?
      return false;
  }
  return true;
}
Das ganze ist natürlich immer noch nicht komplett optimiert, aber es funktioniert genau so und ist DEUTLICH kürzer und mit Sicherheit auch schneller.