Subprogramul nrfp are doi parametri: • n, prin care primește un număr natural (n[2,105]); • m, prin care furnizează numărul din intervalul închis [2,n] care are cei mai mulți factori primi; dacă există mai multe numere cu această proprietate, subprogramul îl returnează pe cel mai mare dintre ele. Scrieți definiția completă a subprogramului. Exemplu: dacă n=100 atunci, în urma apelului, m=90
#include <iostream>
using namespace std;
void nrfp(int n, int& m) {
int nrfactmax = 0;
for (int i = 2; i <= n; i++) {
int nrfact = 0;
int fact = 2;
int aux = i;
while (aux != 1) {
if (aux % fact == 0)
nrfact++;
while (aux % fact == 0)
aux /= fact;
if (fact == 2)
fact++;
else
fact += 2;
}
if (nrfact >= nrfactmax) {
nrfactmax = nrfact;
m = i;
}
}
}
int main() {
int n, m;
cin >> n;
nrfp(n, m);
cout << m << "\n";
return 0;
}