Seite 1 von 1

Uebungsaufgabe 5, S. 9, BG 525

Verfasst: 08.11.02 19:46
von Ralf Thesing
Hallo,

wer kann mir sagen, wie die Uebungsaufgabe 5 auf S. 9
in BG 525 zu loesen ist?

Wie kann ich argv[1] in eine Ganzzahl umwandeln?

Code: Alles auswählen

#include <iostream.h>
#include <limits.h>
#define anfang 1
#define ende   LONG_LONG_MAX

int main(void) { 

 unsigned long long int zahl;
 bool primzahl; 
 
 for(zahl = anfang; zahl <= ende; zahl++) {

  primzahl=true;

  if (zahl <= 1)                   
    primzahl=false;

  for(int i = 2; i < zahl; i++) { 
   if ((zahl/i)*i==zahl)         
     primzahl=false;
  } 

  cout << "\'" << zahl << "\' ist ";
  if (primzahl == false) 
    cout << "k";
  cout << "eine Primzahl." << endl;

 }

return 0; 
} 

Ralf

Re: Uebungsaufgabe 5, S. 9, BG 525

Verfasst: 10.11.02 20:51
von Ralf Thesing
Ralf Thesing hat geschrieben: Wie kann ich argv[1] in eine Ganzzahl umwandeln?
Naja, habe jetzt auch gesehen, dass die Loesungen der
Uebungsaufgaben im Anhang stehen. :)

Also: mit atoi(argv) ist es moeglich.

Code: Alles auswählen

#include <iostream.h> 
#include <cstdlib>

int main(int argc, char *argv[]) { 

unsigned long long int zahl; 
bool primzahl; 

if (argc != 3 || (atoi(argv[1]) > atoi(argv[2]))) {
    cout << "Aufruf  : " << argv[0] << " [von] [bis] "<< endl;
    cout << "          (von < bis)" << endl;
} else {

    for(zahl = atoi(argv[1]); zahl <= atoi(argv[2]); zahl++) { 

      primzahl=true; 

      if (zahl <= 1)                    
          primzahl=false; 

      for(int i = 2; i < zahl; i++) { 
         if ((zahl/i)*i==zahl)          
             primzahl=false; 
      } 

      cout << "\'" << zahl << "\' ist "; 
      if (primzahl == false) 
          cout << "k"; 
      cout << "eine Primzahl." << endl; 

    } 
} 

return 0; 

} 
Ralf