Advertisement
Guest User

100 primeros primos (comentado)

a guest
Jul 26th, 2015
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. /*
  2. Este programa calcula e imprime en pantalla los 100 primeros números primos (no los números primos entre 0 y 100).
  3. */
  4.  
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. // num es el número que vamos a ir aumentando y que se determinará si es primo. Inicia en 2 porque es el primer primo.
  10. int num = 2, divisor, contador;
  11.  
  12. // esta función determina si el número es primo o no, con lo que necesitemos que devuelva un valor 'true' o 'false'
  13. bool esPrimo( int num );
  14.  
  15. int main()
  16. {
  17.   // queremos que el código se ejecute 100 veces
  18.   for ( contador = 0 ; contador < 100 ; ){
  19.     // si el número es primo...
  20.     if ( esPrimo( num ) == true ){
  21.         // ...lo imprime en pantalla; "\n" es para que no se junten todos los números.
  22.         cout<< num <<"\n";
  23.         // ...el contador sólo aumenta si el número es primo.
  24.         contador++;
  25.         // ...aumenta el número, si no se quedaría en 2 eternamente.
  26.         ++num;
  27.     }
  28.     else {
  29.         ++num;
  30.         divisor = 2;
  31.     }
  32.   }
  33. }
  34.  
  35. bool esPrimo ( int num )
  36. {
  37.   // 2 es el primer primo, con lo que tenemos que imprimirlo.
  38.   if ( num == 2 ){
  39.     return 1;
  40.   }
  41.   else {
  42.     // dividimos por el siguiente entero más grande que 1 (que no nos sirve porque ya sabemos que n%1 == 0).
  43.     divisor = 2;
  44.     // mientras divisor sea menor que el número (dividido por sí mismo cualquier número da 0 de resto)...
  45.     while ( divisor < num ){
  46.       // si el resto no es 0, el número por el momento no es primo, así que seguimos aumentando el divisor.
  47.       if ( num % divisor != 0 ){
  48.         ++divisor;
  49.       }
  50.       // si el resto es 0, el número no es primo.
  51.       else return 0;
  52.     }
  53.   }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement