Ciao a tutti,
stavo cercando di svolgere il problema https://training.olinfo.it/#/task/abc_checksum/statement, ma sono arrivato ad un punto fermo.
Ho pensato di calcolarmi i numeri primi fra 2 ed M con Eratostene, in questa maniera:
#include <cmath>
#include <vector>
const int MAXM = 4000000;
std::vector<int> primi;
std::vector<bool> e_primo (MAXM + 1, true);
void inizializza (int P, int M) {
for (int i = 2; i <= M; i++) {
if (e_primo[i]) {
primi.push_back(i);
if (i < sqrt(M))
for (int j = i*i; j <= M; j +=i)
e_primo[j] = false;
}
però dopo questo non ho idea di cosa fare nella funzione controlla, qualcuno mi può guidare?