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

problema in C sau C++

Se da un numar natural. Sa se afiseze cel mai apropiat numar prim față de n.
(programul va contine cel putin un subprogram)

exemplu: n=24 se va afisa 23, pentru n=26 se va afisa 29.


rossetta: ce trebuie sa afisezi daca n e prim? care este limita maxima a lui n?

Răspunsuri la întrebare

Răspuns de NuPotSaStiuTot
1
bool isPrim(int);

int main()

{

int n=26;

int r=0;

for (int i=1; i<n && r==0; i++){

if (isPrim(n+i)) r=n+i;

else if (isPrim(n-i)) r=n-i;

}

cout << r;

return 0;

}

bool isPrim(int n){

if (n/2*2==n) return false;

if (n/3*3==n) return false;

int i=5; int in=2;

while (i<n){

if (n/i*i==n) return false;

i=i+in;

if (in==2) in=4; else in=2; // 5 7 11 13 17 19 23 25 etc.

}

return true;

}

vladgutenco1: NuPotSaStiuTot cind pun programul in code blocks imi da eroare ( nu recunoaste anumite comenzi: bool, return false, return true.)
vladgutenco1: ce inseamna isPrim ??
Alte întrebări interesante