Dau coroana!!!
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.
boiustef:
de unde e problema??? ca sa o putem testa acolo?
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;
}
}
Fișier i_prim.cpp Dimensiune 662 B
Data încărcării 28 Aprilie 2018, 21:40 Scor / rezultat 100 puncte
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Informatică,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă