Salut! Va rog mult sa ma ajutali la aceasta problema in c++. In rezolvarea ei trebuie folosita o functie prim
Cerinţa
Să se scrie o funcție C++ care, pentru un număr natural n transmis ca parametru, determină și întoarce prin intermediul unor parametri de ieșire cel mai mare număr prim mai mic decât n și cel mai mic număr prim mai mare decât n.
Restricţii şi precizări
numele funcției va fi sub
funcția va avea exact trei parametri, în această ordine:
primul parametru, n, reprezintă un număr natural, 3 ≤ n < 1.000.000.000
a și b sunt parametrii prin care funcția va întoarce cele două valori cerute, astfel:
a este cel mai mare număr prim mai mic decât n
b este cel mai mic număr prim mai mare decât n
Exemplu
Dacă n=28, apelul subprogramului va furniza prin parametrul a valoarea 23, iar prin b valoarea 29.
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea solutiei!
Răspunsuri la întrebare
Răspuns de
1
Salut!
Ai rezolvarea in C++ mai jos
//functie eficienta pt determinarea primalitatii
bool prim(int n) {
if (n <= 1) {
return false;
}
else if (n != 2 && n % 2 == 0) {
return false;
}
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
return false;
}
}
return true;
}
//subprogramul cerut de cerinta
void sub(int n, int& a, int& b) {
for (int i = n - 1; i; --i) {
a = i;
if (prim(a)) {
break;
}
}
for (int i = n + 1; i; ++i) {
b = i;
if (prim(b)) {
break;
}
}
}
dinesculidia:
Mulțumesc!
Alte întrebări interesante
Biologie,
8 ani în urmă
Limba română,
8 ani în urmă
Franceza,
8 ani în urmă
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Istorie,
9 ani în urmă
Limba română,
9 ani în urmă