Informatică, întrebare adresată de andreimaria28, 9 ani în urmă

Cerinţa

Scrieţi definiția completă a unui subprogram C++ i_prim care primește prin singurul său parametru, n, un număr natural cu cel mult 9 cifre și returnează diferența minimă p2-p1 în care p1 şi p2 sunt numere prime și p1≤n≤p2.
Restricţii şi precizări

numele subprogramului va fi i_prim
n>2


Exemplu

Dacă n=28, i_prim(n)=6, deoarece p1=23 și p2=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 soluţiei.

Răspunsuri la întrebare

Răspuns de express
1
int i_prim(int n) { int i, r=0, n1, n2; bool prim = true; for(i = 2; i*i <= n; i++) if(n % i == 0) { prim = false; break; } if (!prim) { n2=n; n1=n; while(true) { n1++; prim = true; for(i = 2; i*i <= n1; i++) if(n1 % i == 0) { prim = false; break; } if (prim) break; } while(true) { n2--; prim = true; for(i = 2; i*i <= n2; i++) if(n2 % i == 0) { prim = false; break; } if (prim) break; } r = n1 - n2; } return r; }
Alte întrebări interesante