Cerința
Anul 2017 tocmai s-a încheiat, iar nostalgicii suferă în tăcere deoarece acesta era număr prim. Dorel, un personaj întreprinzător, s-a gândit să afle pentru un număr natural n dat, care este cel mai mare divizor prim al acestuia.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran cel mai mare divizor prim al lui n.
Restricții și precizări
1 ≤ n ≤ 10la puterea 14
La indicatii imi spune acest lucru:
Se află divizorii lui n şi se verifică dacă sunt numere prime.
insa eu nu stiu cum sa verific daca un numar este prim.
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
bool prim(unsigned long long m)
{
if (m==0 || m==1) return false;
if (m==2) return true;
if (m>2)
{
if (m%2==0) return false;
else
{
for (int i=3; i*i<=m; ++i)
if (m%i==0) return false;
}
return true;
}
}
int main()
{
int n, divmax;
cin >> n;
if (prim(n)) cout << n;
else
{
int d, divmax=1;
for (d=2; d*d<=n; ++d)
if (n%d==0)
{
if (prim(d) && d>divmax) divmax=d;
if (prim(n/d) && (n/d)>divmax) divmax=n/d;
}
cout << divmax;
}
return 0;
}
mierlaaurie:
fara for si fara true/fals nu se poate?
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Ed. tehnologică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă