Scrieţi definiţia completă a unui subprogram i_prim care primeşte prin singurul său
parametru, n, un număr natural din intervalul [2,30000] şi returnează diferenţa minimă
p2-p1 în care p1 şi p2 sunt numere prime şi p1≤n≤p2.
Exemplu: dacă n=20 atunci i_prim(20)=4, valoare obţinută pentru p1=19 şi p2=23.
va rog in c++
Răspunsuri la întrebare
Răspuns de
2
#include <math.h>
int i_prim (int n)
{
int d=1,i;
for (i=2;i<=sqrt(n);++i){
if (n%i==0) ++d;
}
if (d==1) return 0;
else {
int p1=1,m;
m=n;
if (n%2==0) --m;
else m-=2;
while (p1==1){
d=1;
for (i=2;i<=sqrt(m);++i)
if (m%i==0) ++d;
if (d==1) p1=m;
else m-=2;
}
if (n%2==0) m=n+1;
else m=n+2;
int p2=1;
while (p2==1){
d=1;
for (i=2;i<=sqrt(m);++i)
if (m%i==0) ++d;
if (d==1) p2=m;
else m+=2;
}
return p2-p1;
}
}
aandronicescuowwgch:
pupici <3
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Informatică,
8 ani în urmă
Chimie,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă