1-goldbach/{v2.1 → v3.0}/GoldbachWorker.h RENAMED
@@ -1,62 +1,63 @@
1
  #ifndef GOLDBACHWORKER_H
2
  #define GOLDBACHWORKER_H
3
 
4
  #include <QThread>
5
 
6
  class GoldbachWorker : public QThread
7
  {
8
  Q_OBJECT
9
  Q_DISABLE_COPY(GoldbachWorker)
10
 
11
  private:
12
  long long number = 0;
 
13
 
14
  public:
15
- explicit GoldbachWorker(long long number);
16
  void run() override;
17
 
18
  signals:
19
  void sumFound(const QString& sum) const;
20
  void calculationDone(long long sumCount) const;
21
  void progressUpdated(int percent) const;
22
 
23
  private:
24
  /**
25
  * @brief Calcula las sumas de Goldbach para el numero dado y las agrega a una pizarra
26
  * @param number El numero dado por el usuario
27
  * @return La cantidad de sumas encontradas
28
  */
29
  long long calculate(long long number);
30
  /**
31
  * Calcula todas las sumas de dos primos que equivalen al numero dado, y las presenta
32
  * en el area resultado. Incrementa la barra de progreso mientras realiza el calculo
33
  * de la conjetura fuerte de Goldbach, por ejemplo:
34
  *
35
  * 4 == 2 + 2
36
  * 6 == 3 + 3
37
  * 10 == 3 + 7 == 5 + 5
38
  *
39
  * @param numero Un numero entero par mayor o igual a 4
40
  * @return la cantidad de sumas de dos primos encontradas
41
  */
42
  long long calculateEvenGoldbach(long long number);
43
  /**
44
  * Calcula todas las sumas de tres primos que equivalen al numero dado, y las presenta
45
  * en el area resultado. Incrementa la barra de progreso mientras realiza el calculo
46
  * de la conjetura debil de Goldbach, por ejemplo:
47
  *
48
  * 7 == 2 + 2 + 3
49
  * 9 == 2 + 2 + 5 == 3 + 3 + 3
50
  *
51
  * @param numero Un numero entero impar mayor o igual a 7
52
  * @return la cantidad de sumas de tres primos encontradas
53
  */
54
  long long calculateOddGoldbach(long long number);
55
  /**
56
  * Retorna true si numero es primo, false si numero no es primo o menor que 2
57
  * Por definicion 1 no es primo ni compuesto, este metodo retorna false
58
  */
59
  static bool isPrime(long long numero);
60
  };
61
 
62
  #endif // GOLDBACHWORKER_H
1
  #ifndef GOLDBACHWORKER_H
2
  #define GOLDBACHWORKER_H
3
 
4
  #include <QThread>
5
 
6
  class GoldbachWorker : public QThread
7
  {
8
  Q_OBJECT
9
  Q_DISABLE_COPY(GoldbachWorker)
10
 
11
  private:
12
  long long number = 0;
13
+ QVector<QString>& results;
14
 
15
  public:
16
+ explicit GoldbachWorker(long long number, QVector<QString>& results, QObject* parent = nullptr);
17
  void run() override;
18
 
19
  signals:
20
  void sumFound(const QString& sum) const;
21
  void calculationDone(long long sumCount) const;
22
  void progressUpdated(int percent) const;
23
 
24
  private:
25
  /**
26
  * @brief Calcula las sumas de Goldbach para el numero dado y las agrega a una pizarra
27
  * @param number El numero dado por el usuario
28
  * @return La cantidad de sumas encontradas
29
  */
30
  long long calculate(long long number);
31
  /**
32
  * Calcula todas las sumas de dos primos que equivalen al numero dado, y las presenta
33
  * en el area resultado. Incrementa la barra de progreso mientras realiza el calculo
34
  * de la conjetura fuerte de Goldbach, por ejemplo:
35
  *
36
  * 4 == 2 + 2
37
  * 6 == 3 + 3
38
  * 10 == 3 + 7 == 5 + 5
39
  *
40
  * @param numero Un numero entero par mayor o igual a 4
41
  * @return la cantidad de sumas de dos primos encontradas
42
  */
43
  long long calculateEvenGoldbach(long long number);
44
  /**
45
  * Calcula todas las sumas de tres primos que equivalen al numero dado, y las presenta
46
  * en el area resultado. Incrementa la barra de progreso mientras realiza el calculo
47
  * de la conjetura debil de Goldbach, por ejemplo:
48
  *
49
  * 7 == 2 + 2 + 3
50
  * 9 == 2 + 2 + 5 == 3 + 3 + 3
51
  *
52
  * @param numero Un numero entero impar mayor o igual a 7
53
  * @return la cantidad de sumas de tres primos encontradas
54
  */
55
  long long calculateOddGoldbach(long long number);
56
  /**
57
  * Retorna true si numero es primo, false si numero no es primo o menor que 2
58
  * Por definicion 1 no es primo ni compuesto, este metodo retorna false
59
  */
60
  static bool isPrime(long long numero);
61
  };
62
 
63
  #endif // GOLDBACHWORKER_H