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
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
Chimie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă