fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <chrono>
  4.  
  5. using namespace std;
  6.  
  7. vector<int> sieve_of_eratosthenes(int limit) {
  8. vector<bool> primes(limit + 1, true);
  9. primes[0] = primes[1] = false; // 0 y 1 no son primos
  10. for (int i = 2; i * i <= limit; ++i) {
  11. if (primes[i]) {
  12. for (int j = i * i; j <= limit; j += i) {
  13. primes[j] = false;
  14. }
  15. }
  16. }
  17. vector<int> result;
  18. for (int i = 2; i <= limit; ++i) {
  19. if (primes[i]) result.push_back(i);
  20. }
  21. return result;
  22. }
  23.  
  24. int main() {
  25. int limit = 100000; // Cambia este valor si lo deseas
  26.  
  27. // Temporizador
  28. auto start = chrono::high_resolution_clock::now();
  29. vector<int> primes = sieve_of_eratosthenes(limit);
  30. auto end = chrono::high_resolution_clock::now();
  31.  
  32. // Resultados
  33. cout << "Primos hasta " << limit << ": " << primes.size() << " encontrados." << endl;
  34. cout << "Tiempo de ejecuciĆ³n: "
  35. << chrono::duration<double>(end - start).count() << " segundos." << endl;
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0.01s 5268KB
stdin
Standard input is empty
stdout
Primos hasta 100000: 9592 encontrados.
Tiempo de ejecución: 0.000488195 segundos.