Se citeşte de la tastatură un număr natural n, apoi o secvenţă de n valori naturale. Scrieţi un algoritm care să determine în mod eficient un număr din secvenţa citită care are număr maxim de divizori primi distincţi.
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include <iostream>
using namespace std;
int n,num,caut, div=0;
int nrdiv(int m)
{
int nr=0, d=2,e;
while (d*d<=m)
{
e=0;
while (m%d==0)
{
m=m/d; ++e;
}
if (e>0) ++nr;
++d;
}
if (m>1) ++nr;
return nr;
}
int main()
{
cin >> n;
for (int i=1; i<=n; i++)
{
cin >> num;
int x=nrdiv(num);
if (x>div)
{
div=x;
caut=num;
}
}
cout << caut;
}
Explicație:
a rămas deschisă problema că dacă există mai multe numere din șir care au același număr maxim de divizori primi distincţi. La codul meu afișează pe primul din ele...
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Geografie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
ce facem atunci???