Informatică, întrebare adresată de floralingeo, 8 ani în urmă

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


floralingeo: dau coroana

Răspunsuri la întrebare

Răspuns de crow9920
5

#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;

}

Alte întrebări interesante